Commit Graph

20270 Commits

Author SHA1 Message Date
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
Pavel V. Talanov be5f00ad1c Update test data for various stub tests 2015-02-16 15:38:33 +03:00
Pavel V. Talanov e4b206726d Minor: slightly improve positioning strategy for redeclaration on class object 2015-02-16 15:38:32 +03:00
Pavel V. Talanov 4132946be2 Minor: Override getTextOffset() in JetObjectDeclaration
Availability of some intentions depends on this
2015-02-16 15:38:32 +03:00
Pavel V. Talanov d9d3f68a39 Drop JetClassObject element and its usages
as class objects are now represented by JetObjectDeclaration element
2015-02-16 15:38:31 +03:00
Pavel V. Talanov be7f5d01bb Update JetObjectDeclaration after parser changes to parser 2015-02-16 15:38:31 +03:00
Pavel V. Talanov f1942b1a74 Parser: do not produce CLASS_OBJECT element
"class object" is parsed into OBJECT_DECLARATION instead
2015-02-16 15:38:30 +03:00
Pavel V. Talanov 42d2b97c09 Remove all class object related constants and utils from JvmAbi 2015-02-16 15:38:30 +03:00
Pavel V. Talanov 894c3bceac Test: add jvm backend test for named class object 2015-02-16 15:38:29 +03:00
Pavel V. Talanov 72f94963ab Tests: add resolve test for named class object 2015-02-16 15:38:28 +03:00
Pavel V. Talanov 2e837c6586 Parser: allow names to be specified for class objects 2015-02-16 15:38:28 +03:00
Pavel V. Talanov c29ba63a74 Minor: Simplify getClassObjectType() 2015-02-16 15:38:27 +03:00
Pavel V. Talanov 0343fd8fc7 Rework class objects
Class objects have name "Default" by default
Do not produce synthetic class objects
Class objects have new semantics:
    class "A" has class object "B" if literal "A" can be used as a value of type "B"
Class objects act like ordinary nested objects
    i.e. are accessible from class scope via getClassifier()
Jvm backend: class object fields and class have the name of class object ("Default")
	as opposed to special "OBJECT$" and "object"
Serialization: only the name of class object is needed to serialize data
2015-02-16 15:38:27 +03:00