Commit Graph

1616 Commits

Author SHA1 Message Date
Alexander Udalov
b99b1883bc Drop unused parameter in JavaToKotlinClassMap and subclasses 2015-02-25 20:13:46 +03:00
Alexander Udalov
fca7a8c4a2 Drop PrimitiveTypesUtil, store desc in JvmPrimitiveType 2015-02-25 20:13:46 +03:00
Andrey Breslav
d70d2ca146 Nullability of error types is not known
#KT-6829 Fixed
2015-02-25 14:59:21 +03:00
Nikolay Krasko
377209f0c3 Do not report CONFLICTING_JVM_DECLARATIONS on delegated origin element 2015-02-24 21:33:55 +03:00
Pavel V. Talanov
d6a942a574 Remove all deprecated OBJECT$ usages from project code 2015-02-18 19:33:56 +03:00
Nikolay Krasko
07d58b55eb Synchronize KotlinJavaPsiFacade with JavaPsiFacadeImpl 2015-02-18 18:51:58 +03:00
Nikolay Krasko
5d3d446ea4 Now PsiElementFinderImpl is registered via extension but it hadn't been added to JavaCoreProjectEnvironment 2015-02-18 18:51:53 +03:00
Natalia Ukhorskaya
43249e928c Fix tests with annotations: enum constants are now resolved as constants in JavaConstantExpressionEvaluator 2015-02-18 18:51:52 +03:00
Andrey Breslav
ab93b530f1 Don't use annotations after nullability was forced upon a platform type
#KT-6762 Fixed
 #KT-6763 Fixed
2015-02-17 18:44:46 +03:00
Alexander Udalov
6ce8d6bd2e Serialize descriptors for local/anonymous classes on JVM
Reflection needs this information to work for local classes and anonymous
objects
2015-02-16 21:46:21 +03:00
Alexander Udalov
0d05fca838 Support serialization/deserialization of local classes
Most of these changes are aimed to support and correctly transform ClassId for
local classes, no actual bytes are written or read at the moment (see next
commits). See the comment on ClassId for clarification.

A hack in DescriptorSerializer which erased anonymous types to Any (which had
been breaking the consistency between descriptors resolved from sources and
from serialized information) is now gone
2015-02-16 20:19:54 +03:00
Alexander Udalov
17c930c84f Use abstract factory for reflection objects on JVM
Introduce an abstract factory class ReflectionFactory which is responsible for creating
reflection objects (KClass, KProperty, ...). The meaningful implementation is
located in "reflection.jvm" where KClassImpl/KPropertyImpl/... are accessible
and can be instantiated. The default implementation will be used in the lite
runtime with no reflection and will return nulls / throw exceptions there.

Put all functions, calls to which are generated by JVM back-end, in one place:
the class named Reflection which contains only static methods. Previously these
functions were scattered across different files in module "reflection.jvm".

The code using reflection may now be compiled against either runtime, but
reflection features will work if and only if reflection is accessible at
runtime
2015-02-16 20:19:13 +03:00
Nikolay Krasko
56c2870ac6 Refactoring: make parameters not-null 2015-02-13 20:28:50 +03:00
Alexander Udalov
29c501e813 Remove useless InjectorForLazyResolveWithJavaUtil, move methods to LazyResolveTestUtil 2015-02-11 18:37:13 +03:00
Alexander Udalov
25775ee516 Drop TraceBasedJavaResolverCache, inline into LazyResolveBasedCache 2015-02-11 18:37:12 +03:00
Alexander Udalov
021315f049 Minor, make ModuleDescriptor public in injectors
It's much more convenient to call injector.getModule() than
injector.getResolveSession().getModuleDescriptor()
2015-02-11 18:37:12 +03:00
Alexander Udalov
5dcf9df6ab Drop InjectorForJavaDescriptorResolver and dependencies
Use InjectorForLazyResolveWithJava instead, it does essentially the same
2015-02-11 18:37:11 +03:00
Alexander Udalov
745ac7355b Simplify ResolveSessionUtils and LazyResolveBasedCache 2015-02-11 18:37:11 +03:00
Alexander Udalov
1e8d8d0a99 Cleanup FqNamesUtil.kt
Delete unused, move some utilities to fqNameUtil.kt in IDE, rewrite comments
2015-02-11 18:37:11 +03:00
Alexander Udalov
e7a744b315 Make JetTypeMapper aware of SAM constructor arguments
This obsoletes 'replaceName' workaround that was present in ClosureCodegen but
missing in other crucial call sites of mapSignature, e.g. generation of
EnclosingMethod info

 #KT-6691 Fixed
2015-02-11 18:10:41 +03:00
Andrey Breslav
0b41136c7c Minor. Logic clarified 2015-02-10 06:55:49 +01:00
Andrey Breslav
fcb6055913 SenselessComparisonChecker used for @NotNull values from Java 2015-02-10 06:55:49 +01:00
Andrey Breslav
f36d6ce5b2 Reporting USELESS_ELVIS and UNNECESSARY_NOT_NULL_ASSERTION on Java's @NotNull values 2015-02-10 06:55:48 +01:00
Andrey Breslav
30f5c1b953 Reporting unnecessary safe calls on Java's @NotNull values 2015-02-10 06:55:48 +01:00
Andrey Breslav
fcac449c70 Nullability-related warnings for receivers
#KT-6723 In Progress
2015-02-10 06:55:47 +01:00
Andrey Breslav
5db6bb04e3 Basic Java nullability warnings implemented
#KT-6723 In Progress
2015-02-10 06:55:47 +01:00
Alexander Udalov
6763d61aae Minor, fix warning, don't create empty map 2015-02-09 21:14:03 +03:00
Alexander Udalov
4128655893 Report incomplete hierarchy error
This is the case when you reference a Java class in Kotlin whose superclass is
not resolved. Previously this fact was swallowed by LazyJavaClassDescriptor
leading to mysterious compilation errors

 #KT-5129 Fixed
2015-02-09 21:14:02 +03:00
Evgeny Gerashchenko
e5fd6bc067 Minor. Inlined trivial functions. 2015-02-06 17:44:42 +03:00
Evgeny Gerashchenko
5b89f88447 Minor. Simplified getObsoletePackageParts() and similar functions. 2015-02-06 17:44:40 +03:00
Evgeny Gerashchenko
f071802e19 Simplified process of filtering out obsolete package parts and loading descriptors from incremental caches.
Now when file is deleted or dirty (compiled right now), its old package part is used. Current package of file doesn't matter.
2015-02-06 17:44:39 +03:00
Evgeny Gerashchenko
5663383fea Minor. Removed unused property. 2015-02-06 15:56:33 +03:00
Nikolay Krasko
e802044c60 Additional cache for not-found packages 2015-02-02 14:15:04 +03:00
Nikolay Krasko
a8557180f1 Register KotlinJavaPsiFacade as component 2015-02-02 14:15:01 +03:00
Nikolay Krasko
c8de43f93e findPackage() parametrize with scope 2015-02-02 14:14:59 +03:00
Nikolay Krasko
07e74f3179 Refactoring: rename class 2015-02-02 14:14:57 +03:00
Nikolay Krasko
aff9ac65cf Remove unnecessary intermediate class 2015-02-02 14:14:55 +03:00
Nikolay Krasko
f5da351e8a Move KotlinPsiElementFinderImpl and add wrapper interface to avoid creating many unsupported methods 2015-02-02 14:14:54 +03:00
Nikolay Krasko
4a0e7489dd Remove all unused code from JavaPsiFacadeImpl 2015-02-02 14:14:52 +03:00
Svetlana Isakova
6511086034 Rename: PartialBodyResolveProvider -> StatementFilter 2015-01-30 13:33:37 +03:00
Andrey Breslav
828507de78 Unused code removed from DeclarationResolver 2015-01-29 16:07:27 +03:00
Andrey Breslav
6395fd819f Got rid of non-lazy local classifier analyzer 2015-01-29 16:07:27 +03:00
Andrey Breslav
202c44e969 Create LazyClassDescriptors for local classes 2015-01-29 16:07:25 +03:00
Andrey Breslav
483e20affc LazyLocalClassifierAnalyzer introduced 2015-01-29 16:07:25 +03:00
Andrey Breslav
5b4682dd0e LazyTopDownAnalyzer does not depend on ResolveSession or ScopeProvider any more 2015-01-29 16:07:25 +03:00
Andrey Breslav
e16885c301 LazyTopDownAnalyzerForTopLevel extracted 2015-01-29 16:07:25 +03:00
Andrey Breslav
6285efe32d LazyDeclarationResolver extracted from ResolveSession 2015-01-29 16:07:24 +03:00
Andrey Breslav
b5503f3acf DeclarationScopeProviderImpl extracted 2015-01-29 16:07:24 +03:00
Andrey Breslav
dae5ec24e2 LazyTopDownAnalyzer is always called in LAZY mode 2015-01-29 16:07:24 +03:00
Alexander Udalov
5903b8c4a7 Reorder and optimize dependencies between modules and libraries
- drop 'kotlin-runtime' and other dependencies which are exported by
  other modules ('util' and 'util.runtime' in case of 'kotlin-runtime')
- make all Kotlin modules from the compiler depend on 'util' for clarity
- put 'util' and 'util.runtime' to the bottom of the list everywhere: when
  kotlin-runtime gets reflection, classes from core/ should have higher
  priority than their previous versions from kotlin-runtime.jar
2015-01-28 19:58:35 +03:00