Alexander Udalov
e705ff2517
Write KotlinSyntheticClass annotation on when-by-enum mapping classes
2015-02-16 21:46:22 +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
98b554d995
Fix path to runtime when building kotlin-ant.jar
...
${kotlin-home}/lib/kotlin-runtime.jar is the newly built runtime, which is not
compiled yet when invoking a clean "ant dist"
2015-02-16 20:19:54 +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
add9bb34cb
Refactor ReadKotlinClassHeaderAnnotationVisitor
...
Extract a hierarchy of four nested classes instead of anonymous
2015-02-16 20:19:53 +03:00
Alexander Udalov
5d8ae3ed6a
Minor, refactor some constants in JvmAnnotationNames
...
Declare KotlinClass similarly to KotlinSyntheticClass, this will be used later
2015-02-16 20:19:52 +03:00
Alexander Udalov
fdfe3fd73b
Minor, serialize/deserialize local visibility
...
Also support non-subsequent enum values in Flags
2015-02-16 20:19:51 +03:00
Alexander Udalov
cd9898fc43
Minor, rename and invert meaning of ClassId.isTopLevelClass
...
Also use a simpler constructor and simplify ClassDeserializer.ClassKey
2015-02-16 20:19:50 +03:00
Alexander Udalov
e812c4e67f
Introduce KotlinSyntheticClass.Kind.LOCAL_TRAIT_IMPL
2015-02-16 20:19:50 +03:00
Alexander Udalov
ce26ce0458
Drop "extra visibility" from binary format
...
Descriptors of Kotlin symbols should always have a visibility known to Kotlin
2015-02-16 20:19:49 +03:00
Alexander Udalov
1609bbcd10
Minor, add FQ name to avoid clash
...
Maven build compiles runtime.jvm and reflection.jvm together and
IllegalAccessException is ambiguous between java.lang and kotlin.reflect
2015-02-16 20:19:48 +03:00
Alexander Udalov
45fec9257a
Minor, move replaceHashWithStar to JetTestUtils
2015-02-16 20:19:48 +03:00
Alexander Udalov
37da154ea2
Minor, move builtins serializer test data
2015-02-16 20:19:47 +03:00
Alexander Udalov
c3909ebbd7
Minor, update outdated comment
2015-02-16 20:19:46 +03:00
Alexander Udalov
245b16dccc
Drop unneeded factory methods due to ABI version increase
...
Either ReflectionFactory or direct creation is now used instead
2015-02-16 20:19:14 +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
Alexander Udalov
1e50078f6f
Delete dependency of 'serialization' on trove4j
...
Use HashMap of wrapped objects instead of THashMap with custom hashing strategy
2015-02-16 20:19:12 +03:00
nbilyk
121ada0cab
JS lib: added missed arguments to Blob constructor.
...
#KT-6654 Fixed
2015-02-16 19:17:10 +03:00
nbilyk
6afe64dd14
JS lib: added canvas attributes parameter to HTMLCanvasElement::getContext
2015-02-16 19:17:10 +03:00
nbilyk
f4411773c3
JS lib: added missed fields naturalWidth and naturalHeight to HTMLImageElement.
2015-02-16 19:17:10 +03:00
Andrey Breslav
54483dbb95
KT-6118 Redundant type cast can be not redundant?
...
#KT-6118 Fixed
2015-02-16 18:50:10 +03:00
Andrey Breslav
47f772e75a
Assert no lookup in meaningless scope created by commonSupertype()
2015-02-16 18:50:10 +03:00
Andrey Breslav
c61a29d4f5
KT-6774 Cannot find equals() when comparing with null
...
#KT-6774 Fixed
2015-02-16 18:50:09 +03:00
Andrey Breslav
99b049af20
Minor. Typo fixed
2015-02-16 18:50:09 +03:00
Pavel V. Talanov
df90f16492
Increase stub version
2015-02-16 15:38:49 +03:00
Pavel V. Talanov
32aff01969
Increase abi version
2015-02-16 15:38:48 +03:00
Pavel V. Talanov
1e772e3d1a
KDoc: remove visitClassObject override
2015-02-16 15:38:48 +03:00
Pavel V. Talanov
9e48631ccb
Minor: Remove redundant implementation getDefaultObjectDescriptor() in missingDependencies.kt
2015-02-16 15:38:47 +03:00
Pavel V. Talanov
1174010f33
JS backend: support named class objects
...
Temporary solution until named objects in classes are supported in js backend
2015-02-16 15:38:47 +03:00
Pavel V. Talanov
f0003449e5
Test named class object reference resolve
2015-02-16 15:38:46 +03:00
Pavel V. Talanov
96e54b4872
Test accessing class object from java
2015-02-16 15:38:45 +03:00
Pavel V. Talanov
ed5e2a21d1
Restore some of the tests for deprecated OBJECT$ field
2015-02-16 15:38:45 +03:00
Pavel V. Talanov
2d59791cf2
Improve LazyClassDescriptor#getDefaultObjectDescriptor()
...
To cover the case when default object's name is not unique (redeclaration)
(Calling getClassifier is wrong for this case)
2015-02-16 15:38:44 +03:00
Pavel V. Talanov
b6b83a4683
Minor: Add validation for ClassDescriptor#getDefaultObjectDescriptor() new contract
2015-02-16 15:38:44 +03:00
Pavel V. Talanov
766912c590
Generate additional deprecated "OBJECT$" field for class object
...
To avoid breaking some code for now
It should be removed later
2015-02-16 15:38:43 +03:00
Pavel V. Talanov
7d5c0dc8bf
Refactor: ImplementationBodyCodegen#generateFieldForSingleton()
2015-02-16 15:38:43 +03:00
Pavel V. Talanov
f482768acf
Introduce ClassDescriptor#getDefaultObjectDescriptor()
...
ClassDescriptor#getClassObjectDescriptor (with old semantics) is now a utility
Process usages and replace with calls to a new method where appropriate
2015-02-16 15:38:42 +03:00
Pavel V. Talanov
945072a129
Drop DeserializedResolverUtils and it's usages
2015-02-16 15:38:41 +03:00
Pavel V. Talanov
11ed783e1e
Refactor: get rid of MemberFqNameProvider
2015-02-16 15:38:41 +03:00
Pavel V. Talanov
d52d1035d0
Fix newly introduced NPE in UnusedSymbolInspection
...
getName() and getNameIdentifier() are not in sync for class objects
2015-02-16 15:38:40 +03:00
Pavel V. Talanov
1adf15d01d
Update test data for j2k converter tests
2015-02-16 15:38:40 +03:00
Pavel V. Talanov
d689c11848
Update test for class object completion
2015-02-16 15:38:39 +03:00
Pavel V. Talanov
2b0e823695
Improve test for deprecated class object
2015-02-16 15:38:38 +03:00
Pavel V. Talanov
514a551c04
Update diagnostics test for many class objects
2015-02-16 15:38:38 +03:00
Pavel V. Talanov
0ea69dea95
Update duplicate jvm signature test for class objects
2015-02-16 15:38:37 +03:00
Pavel V. Talanov
1972c2f177
Update test data for various tests
...
Due to slight semantic changes after class object refactor
2015-02-16 15:38:37 +03:00
Pavel V. Talanov
7b837e2631
Updata test data: txt files for diagnostics tests
2015-02-16 15:38:36 +03:00
Pavel V. Talanov
75f55dd99a
Update test data that mentioned old <class-object-for-..> name
2015-02-16 15:38:35 +03:00
Pavel V. Talanov
35b88fb1a5
Update test data for write flags test
2015-02-16 15:38:34 +03:00
Pavel V. Talanov
a1f4c06a49
Update test data that mentioned old JvmAbi constants
2015-02-16 15:38:34 +03:00