Commit Graph

3152 Commits

Author SHA1 Message Date
Alexander Udalov 48b18f18d3 Restore explicit imports of Kotlin function types in Java
This is a follow-up to 738a84e259 and
d4965a4f3e. Optimize imports in all files
affected in those commits, drop temporary _.kt
2015-05-26 18:46:27 +03:00
Alexander Udalov 9ba6d91e2e Prepare JVM runtime for support of reflection on functions
Introduce abstract class FunctionReference, which is supposed to be a
superclass for all anonymous classes generated for function references. Each
anonymous subclass will have statically-generated symbol info, which will be
used by reflection to locate the symbol
2015-05-26 15:05:01 +03:00
Alexander Udalov 27ed098467 Introduce kotlin.jvm.internal.Lambda, superclass for all lambdas
It has its arity precomputed, as opposed to the future KFunctionImpl inheriting
from FunctionImpl, for which the computation of arity can take some time and so
it shouldn't be passed in the constructor and saved as a field
2015-05-26 15:04:54 +03:00
Alexander Udalov 738a84e259 Temporary hack to migrate functions to package kotlin.jvm.functions
Add a file in package 'kotlin.jvm.functions' to the project and replace
explicit imports of functions 'kotlin.Function{n}' to two imports 'kotlin.*'
and 'kotlin.jvm.functions.*', so that the codebase can be compiled both by the
old and by the new compiler
2015-05-26 15:04:34 +03:00
Michael Nedzelsky d4f348edd5 VirtualFileFinder: regenerate injectors 2015-05-26 05:03:54 +03:00
Michael Nedzelsky 618a8622a1 VirtualFileFinderFactory: introduce JvmVirtualFileFinderFactory, JsVirtualFileFinderFactory 2015-05-26 05:03:51 +03:00
Mikhail Glukhikh f4977a1108 Reorganization of when checking: exhaustion predicates clarified, analysis on platform enum warnings was moved to frontend.java 2015-05-25 14:23:57 +03:00
Alexey Sedunov b1f1360081 PSI: Make JetPostfixExpression.getBaseExpression() nullable
#KT-7761 Fixed
2015-05-21 19:29:49 +03:00
Pavel V. Talanov cfdb1f4ec3 Refactor creation of ModuleDescriptor
Add storageManager to ModuleDescriptorImpl (to be used later)
Extract ModuleParameters to hold default imports and platform class map
Introduce MutableModuleContext to simplify module creation code
2015-05-20 19:45:50 +03:00
Alexander Udalov 189286efee Support platformStatic members in companion object of enums
#KT-7777 Fixed
2015-05-19 18:47:00 +03:00
Nikolay Krasko 0108205367 Minor: log class of element in assert message 2015-05-19 13:04:57 +03:00
Mikhail Glukhikh fdf0ea5546 Enum warnings fixed: deprecated delimiters, short super constructors, both in project and in libraries 2015-05-18 16:08:16 +03:00
Pavel V. Talanov 268d43d14a Change ModuleContext#module type to ModuleDescriptor instead of ModuleDescriptorImpl 2015-05-17 18:24:50 +03:00
Pavel V. Talanov 01efbb1502 Introduce ModuleContext, ProjectContext and use it some of the APIs 2015-05-17 18:24:49 +03:00
Pavel V. Talanov 9d22a39924 Refactor: TopDownAnalysisParameters -> TopDownAnalysisMode
No longer implements TypeLazinessToken (was unused)
2015-05-17 18:24:49 +03:00
Pavel V. Talanov d9c70b5927 Drop TopDownAnalysisParameters#isAnalyzingBootstrapLibrary() 2015-05-17 18:24:48 +03:00
Pavel V. Talanov f9b6c25498 Refactor: TopDownAnalysisParameters doesn't implement GlobalContext 2015-05-17 18:24:47 +03:00
Natalia Ukhorskaya f20e76c185 Improve assert message.
#KT-6625 In Progress
2015-05-14 14:08:16 +03:00
Dmitry Jemerov 9975bb8935 replace 'trait' keyword with 'interface' in user-visible messages and code generation tools 2015-05-12 11:49:37 +02:00
Dmitry Jemerov cce1be3892 rename JetClass.isTrait() to isInterface(); rename ClassKind.TRAIT to INTERACE 2015-04-29 16:50:19 +02:00
Denis Zharkov fc5236244b Deprecate java.lang.Class as annotation parameter 2015-04-29 14:03:11 +03:00
Pavel V. Talanov ac2cb9af74 Remove some usages of KotlinBuiltIns.getInstance()
Introduce DeclarationDescriptor.builtIns extension to get builtins where descriptors are available
Introduce various utilities in KotlinBuiltIns to check for primitive types and get fq names of builtins
2015-04-28 12:49:34 +03:00
Pavel V. Talanov 1a5efacbf3 Refactor frontend components
Make dependencies more explicit
Move components out of ExpressionTypingServices
Make ExpressionTypingUtils a true utility class, refactor stuff out
Extract new components: FakeCallResolver, MultiDeclarationResolver, ValueParameterResolver
2015-04-27 15:56:59 +03:00
Michael Bogdanov 39fabda611 New diagnostic for Java default method call via super in trait 2015-04-24 18:54:09 +03:00
Ilya Ryzhenkov c2b3bcc95f SymbolUsageValidator infrastructure 2015-04-24 15:44:28 +03:00
Alexander Udalov 43c11b2925 Merge CollectionClassMapping into JavaToKotlinClassMap 2015-04-24 02:09:05 +03:00
Alexander Udalov a59fa5015e Merge KotlinToJavaTypesMap into JavaToKotlinClassMap
Also use this new Kotlin->Java mapping in RuntimeTypeMapper instead of
inheriting directly from JavaToKotlinClassMapBuilder
2015-04-24 02:09:05 +03:00
Alexander Udalov b956fb5eb0 Pull Java<->Kotlin primitive type mapping up to JavaToKotlinClassMapBuilder 2015-04-24 02:09:04 +03:00
Alexander Udalov 4b07ec11ea Change Class<?> parameter to ClassId in JavaToKotlinClassMap implementations 2015-04-24 02:09:04 +03:00
Alexander Udalov deff3968db Simplify KotlinToJavaTypesMap, use only one map 2015-04-24 02:09:03 +03:00
Alexander Udalov 23a792aa44 Somewhat simplify mapping of JVM primitive types 2015-04-24 02:09:03 +03:00
Alexander Udalov 0a66c78449 Disperse primitive type mapping in JavaToKotlinClassMap 2015-04-24 02:09:02 +03:00
Nikolay Krasko 3e1c3e9dfe Don't search for NonClasspathClassFinder classes and package during Kotlin resolve 2015-04-23 17:38:07 +03:00
Denis Zharkov 1b42e2fdcc Deprecate calls of annotations' methods 2015-04-23 08:27:43 +03:00
Mikhail Glukhikh e64dab0ae9 Review fixes after automatic code analysis 2015-04-21 15:29:34 +03:00
Mikhail Glukhikh 27625b04e1 Refactoring of JetTypeInfo / BindingContext. Loop data flow analysis corrected.
Now BindingContext includes expression type info instead of jump out possible, data flow info and expression type.
getType() was added into BindingContext, getType() and recordType() were added into BindingTrace.
JetTypeInfo now includes also jump possible flag and jump point data flow info.
Old TypeInfoWithJumpInfo deleted.
TypeInfoFactory introduced to create JetTypeInfo instances.
A pack of extra tests for break / continue in loops added.
2015-04-21 15:29:07 +03:00
Denis Zharkov cc9322fbdd Add quickfix for usages of javaClass<T>() in annotations loaded from Java 2015-04-17 18:52:17 +03:00
Denis Zharkov f53baebf89 Show warning on usages of javaClass<T>() in annotations loaded from Java 2015-04-17 18:50:37 +03:00
Pavel V. Talanov d76f293dc9 Speed up finding kotlin binaries and java files in CLI
Change VirtualFileFinder api to accept ClassId and adjust usages
Introduce KotlinCoreProjectEnvironment to create special KotlinCliJavaFileManager which shares cache with CliVirtualFileFinder
Truly distinguish between java source roots and binary roots: don't search for source files in classpath and vica versa
Implement JvmDependenciesIndex
2015-04-16 16:40:28 +03:00
Alexander Udalov 44e35cad29 Make 'sure' an inline function with a lazy parameter
Also replace some other non-lazy stdlib function usages with the new lazy
'sure'
2015-04-16 13:55:06 +03:00
Denis Zharkov 0abc63261d Inject reflectionTypes into LazyJavaResolverContext 2015-04-16 10:40:20 +03:00
Denis Zharkov f942f6ac8e Move ReflectionTypes to builtins 2015-04-16 10:40:19 +03:00
Denis Zharkov cc17f7d82d JVM: Support using KClass as annotation parameter type 2015-04-16 10:40:19 +03:00
Denis Zharkov 1324667bc9 Prohibit use of positioned value arguments for java annotation 2015-04-07 19:31:30 +03:00
Dmitry Jemerov 7b507276ed frontend diagnostics for kotlin.jvm.overloads
#KT-7203 Fixed
2015-04-02 20:30:36 +02:00
Nikolay Krasko ad23e9159c Refactoring: remove unnecessary subclassing PsiClass in marker interface 2015-04-01 02:01:53 +03:00
Denis Zharkov a4018d9eae Run "Add 'init' keyword in whole project" quickfix 2015-03-31 20:20:23 +03:00
Mikhail Glukhikh 9c1551bca9 Implementation of smart casts for public / protected immutable properties that are not open and used in the same module.
DataFlowValueFactory and its environment refactoring: containing declaration is added into factory functions
as an argument and used to determine identifier stability. A few minor fixes. #KT-5907 Fixed. #KT-4450 Fixed. #KT-4409 Fixed.

New tests for KT-4409, KT-4450, KT-5907 (public and protected value properties used from the same module or not,
open properties, variable properties, delegated properties, properties with non-default getter).
Public val test and KT-362 test changed accordingly.
2015-03-31 16:19:03 +03:00
Alexander Udalov 32c3bb8c7f Extract module 'deserialization' out of 'serialization'
'deserialization' stays in core because it's needed both in compiler and
reflection, but 'serialization' is used only in the compiler
2015-03-30 19:44:17 +03:00
Alexander Udalov 085bc2197b Merge module 'serialization.jvm' into 'descriptor.loader.java'
It was very small and there proved to be no point in separation of loading Java
classes and deserializing Kotlin classes
2015-03-30 17:22:06 +03:00