Commit Graph

474 Commits

Author SHA1 Message Date
Valentin Kipyatkov 1983a9f3da Replaced usages of JetScope.getAllDescriptors() with JetScope.getDescriptors() (where makes sense) 2014-11-12 21:24:55 +03:00
Valentin Kipyatkov 760b9c4389 Added JetScope.getDescriptors(nameFilter, kindFilter) but the filters are never used yet 2014-11-12 21:24:55 +03:00
Alexander Udalov eb96b97bc8 Get rid of underscores in private property names
They were used to workaround duplicate signature errors, but this is no longer
relevant since no accessors are generated for private properties with backing
fields
2014-11-11 18:35:37 +03:00
Alexander Udalov 66d27fad13 Move utilities out of 'core' to where they are used 2014-11-11 18:10:42 +03:00
Alexander Udalov d3f210f73c Move SAM resolution to frontend.java 2014-11-11 18:10:42 +03:00
Alexander Udalov 0b6bb38bb3 Move SAM function type calculation to SamConversionResolver 2014-11-11 18:10:42 +03:00
Alexander Udalov 344c6f0b3f Move SAM adapter resolution logic to SamConversionResolver 2014-11-11 18:10:41 +03:00
Alexander Udalov ae78b0e216 Minor, merge two sematically identical functions 2014-11-11 18:10:41 +03:00
Alexander Udalov 4350da5f24 Extract SAM constructor resolution logic to a component 2014-11-11 18:10:40 +03:00
Nikolay Krasko c242665cd3 Extract isCompatibleAbiVersion from kinds enum and store read kinds even for incompatible version 2014-11-11 17:33:13 +03:00
Andrey Breslav 4892369cf4 Diagnostic tests are logging their lazy activity 2014-11-10 17:24:04 +02:00
Andrey Breslav adafd70730 Abstract lazy type moved to descriptors 2014-11-08 15:51:41 +02:00
Valentin Kipyatkov 72e0546fde Converted JavaPackage and its implementation to Kotlin 2014-11-05 21:42:15 +03:00
Valentin Kipyatkov e2e7210b37 Converted DeserializedPackageMemberScope to Kotlin 2014-11-05 21:42:14 +03:00
Valentin Kipyatkov c2a3fde969 Converted JetScope to Kotlin 2014-11-05 21:42:12 +03:00
Nikolay Krasko 7e1546d3e7 Merge stored empty lists and sets to singe object 2014-11-02 14:55:00 +03:00
Andrey Breslav 60ff2df597 Memory optimization: Do not retain LinkedHashSets in caches
LinkedHashSets are replaced with tight ArrayLists
2014-11-01 13:38:24 +02:00
Andrey Breslav a14eefcea3 KT-6077 Compiler does not issue error on unsafe access to ArrayList with nullable values
#KT-6077 Fixed
2014-10-22 00:41:20 +04:00
Alexander Udalov f632a34959 Delete unused JavaSignatureFormatter 2014-10-17 21:27:21 +04:00
Andrey Breslav b1e452b568 type unescaped in *.kt files 2014-10-14 13:02:13 +04:00
Andrey Breslav b20439027c Advancing ABI version
Related changes:
 - serialization of flexible types supported
 - Intrinsics.checkExpressionValueIsNotNull() added
2014-10-13 15:38:23 +04:00
Andrey Breslav f1675a9162 Minor. Getters replaced by properties 2014-10-13 15:38:21 +04:00
Andrey Breslav 070a7d4d72 Serialization of flexible types supported 2014-10-13 15:38:20 +04:00
Andrey Breslav 013dd7261e Extensible specificity expressed as a type capability 2014-10-13 15:38:11 +04:00
Andrey Breslav 91b0b83ec3 Java declaration annotations are treated as type annotations
This is needed, for example, to approximate flexible types correctly when rendering them in the code
2014-10-13 15:38:06 +04:00
Andrey Breslav 220c360081 Null-aware types introduced
Flexible types should drive their own conversions to nullable/not-null
2014-10-13 15:37:58 +04:00
Andrey Breslav 969beb7898 Account for substitutions of one variable for another (it must remain a variable) 2014-10-13 15:37:57 +04:00
Andrey Breslav 583694a450 Flexible types for primitive arrays 2014-10-13 15:37:54 +04:00
Andrey Breslav dd2e95b3bc Substitution implemented for flexible occurrences of Java type parameters 2014-10-13 15:37:52 +04:00
Andrey Breslav bf53222bd9 Flexible types in SAM conversions 2014-10-13 15:37:51 +04:00
Andrey Breslav 2529bb24d1 Don't create flexible types for ".class" expressions in annotation arguments 2014-10-13 15:37:51 +04:00
Andrey Breslav c699fa96d9 Make not-null compile-time constants non-flexible 2014-10-13 15:37:51 +04:00
Andrey Breslav 867956729b Don't create platform types for annotation members 2014-10-13 15:37:50 +04:00
Andrey Breslav b665a1998b Supertypes should not be flexible 2014-10-13 15:37:47 +04:00
Andrey Breslav f11095b1d0 Minor. DelegatingFlexibleType moved to top level 2014-10-13 15:37:45 +04:00
Andrey Breslav e268e74fa3 Flexible types added to JDR
So far they act exactly like inflexible ones
2014-10-13 15:37:42 +04:00
Andrey Breslav ad8de070fa A flag in the JDR to govern usage of platform types 2014-10-13 15:37:42 +04:00
Michael Bogdanov 1944f75802 Skip default methods on single abstract method search
Fix for KT-4886: SAM conversion doesn't work for interfaces with default methods

  #KT-4886 Fixed
2014-10-09 17:15:46 +04:00
Svetlana Isakova 20f3403c80 Rename: this object, receiver argument -> dispatch receiver, extension receiver 2014-10-01 18:52:51 +04:00
Alexander Udalov 96308aa14e Increase ABI version
After changes to package part names and top level closure names
2014-09-26 10:23:21 +04:00
Alexander Udalov c57441b51b Use '$' instead of '-' in package part class names
Otherwise some tools break (e.g. CheckMethodAdapter in ASM, used in generic
signature writer) because they expect class names to be Java identifiers.

Some tests fixed, some will be fixed in future commits
2014-09-26 10:22:20 +04:00
Alexander Udalov 1905401273 Move ClassId to module descriptors, closer to other names 2014-09-16 11:36:39 +04:00
Alexander Udalov ed92eb1d17 Minor, use another constructor of ClassId 2014-09-16 11:32:45 +04:00
Alexander Udalov 73a92c6aa9 Remove JavaClass.getAllMethods()/getAllFields()
Their behavior is different in PSI and reflection (two things that this
interface is supposed to unify), so there's no point in making it interface
methods, rather we should just walk supertype hierarchy manually

Also make JavaClassImpl.getSupertypes() invoke PsiClass.getSuperTypes(),
because it also contains java.lang.Object for interfaces, which makes
equals/hashCode/toString appear in interfaces' getAllMethods() as well
2014-09-15 19:30:53 +04:00
Alexander Udalov 3485d65d8a Remove superfluous isVararg() from JavaMethod 2014-09-15 19:30:52 +04:00
Alexander Udalov 924283d2d9 Extract JavaConstructor out of JavaMethod
Will be useful in reflection-backed implementation of Java structure, where
Constructor is not a Method and doesn't even inherit from it
2014-09-15 19:30:52 +04:00
Alexander Udalov 7595e32bb6 Use ClassId instead of JvmClassName in KotlinJvmBinaryClass
ClassId contains exact information about origin of the class (e.g. if '$' in
the class name denotes nested classes separator or just a character in the
name)
2014-09-15 19:30:51 +04:00
Alexander Udalov e3b01f073f Replace FqName by ClassId where possible in Java resolver 2014-09-15 19:30:51 +04:00
Alexander Udalov a8c5f1bb3a Drop KotlinClassFinder#findKotlinClass(FqName)
findKotlinClass(ClassId) should be used instead
2014-09-15 19:30:50 +04:00
Alexander Udalov 422e922c36 Make JavaClassFinder accept ClassId rather than FqName
ClassId has more information about the name which will be very useful when
implementing JavaClassFinder in reflection
2014-09-15 19:30:50 +04:00