Commit Graph

2276 Commits

Author SHA1 Message Date
Nikolay Krasko 1f79e0905f Intrinsic default objects implementation 2015-03-05 01:30:37 +03:00
Pavel V. Talanov 48fbce9582 Refactor: process mentions of class object
Rename usages that refer to "default object" concept now
Test data file names are left as is
2015-03-03 20:57:08 +03:00
Pavel V. Talanov 9628d98f38 Convert to kotlin: DeclarationResolver.kt 2015-03-03 14:54:36 +03:00
Pavel V. Talanov cebe556d03 Minor: simplify code 2015-03-03 13:04:31 +03:00
Alexander Udalov 2c0830b017 Change synthetic accessor method names to "access$..."
As per discussion in https://youtrack.jetbrains.com/issue/KT-6870
2015-02-27 20:30:51 +03:00
Yan Zhulanow db45ab4ad6 Call findViewById if invoked on anything but our Activity class 2015-02-26 15:26:00 +03:00
Yan Zhulanow f033604c7a Rename jet to kotlin in compiler api 2015-02-26 15:25:59 +03:00
Yan Zhulanow 9aef9b2643 Rename jet to kotlin in plugin-api 2015-02-26 15:25:58 +03:00
Yan Zhulanow c756cfef86 Codebase update 2015-02-26 15:25:57 +03:00
Yan Zhulanow 438d2ee5fa Cache resolved Views in Map 2015-02-26 15:25:56 +03:00
Andrey Breslav 5811b13ce7 ExpressionCodegenExtension extracted 2015-02-26 15:25:40 +03:00
Andrey Breslav 565ce5a781 frontend.android renamed to android-compiler-plugin 2015-02-26 15:25:39 +03:00
Mikhail Mutcianko 19e6b79cae minor refactorings 2015-02-26 15:25:30 +03:00
Mikhail Mutcianko 35b1cb4fc7 check if android metadata is present before inlining property 2015-02-26 15:25:22 +03:00
Mikhail Mutcianko 2801253a9c add byte code generation 2015-02-26 15:25:21 +03:00
Mikhail Mutcianko ab0c922f53 refactor XmlHandler, optimize imports, remove unused files 2015-02-26 15:25:20 +03:00
Mikhail Mutcianko 6371197041 add missing module and build dependencies 2015-02-26 15:25:20 +03:00
Alexander Udalov fca7a8c4a2 Drop PrimitiveTypesUtil, store desc in JvmPrimitiveType 2015-02-25 20:13:46 +03:00
Nikolay Krasko f3919db592 Find usages and reference to delegation origin 2015-02-24 21:52:52 +03:00
Nikolay Krasko 377209f0c3 Do not report CONFLICTING_JVM_DECLARATIONS on delegated origin element 2015-02-24 21:33:55 +03:00
Alexander Udalov cf0842b135 Fix initialization order in REPL
#KT-6843 Fixed
2015-02-22 16:12:38 +03:00
Michael Bogdanov 37006ad566 Annotate additional files through bytecode toolwindow analysis 2015-02-20 10:16:22 +03:00
Pavel V. Talanov d6a942a574 Remove all deprecated OBJECT$ usages from project code 2015-02-18 19:33:56 +03:00
Alexander Udalov a960d2d785 Fix "No descriptor for enum entry" exception
EA-52557, EA-64887
2015-02-17 15:31:45 +03:00
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 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 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 e812c4e67f Introduce KotlinSyntheticClass.Kind.LOCAL_TRAIT_IMPL 2015-02-16 20:19:50 +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
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 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 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
Nikolay Krasko 0f3971323f Go to Declaration does not work on usage of constant from class object in Java (KT-6172)
#KT-6172 Fixed
2015-02-13 20:28:51 +03:00
Nikolay Krasko 56c2870ac6 Refactoring: make parameters not-null 2015-02-13 20:28:50 +03:00
Alexander Udalov 9b28e19551 Use CodegenContext to determine outer class & enclosing method 2015-02-11 18:10:49 +03:00
Alexander Udalov 22e5efc7cd Remove useless parameter of FunctionCodegen.generateDefault
JvmMethodSignature can now be perfectly obtained by JetTypeMapper.mapSignature
2015-02-11 18:10:43 +03:00
Alexander Udalov f4d4fc042b Remove useless parameter of FunctionCodegen.generateMethod
JvmMethodSignature can now be perfectly obtained by JetTypeMapper.mapSignature
2015-02-11 18:10:42 +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
Alexander Udalov ca2cfb9859 Refactor SAM constructor invocation in JVM codegen
Compute all necessary info in CodegenAnnotatingVisitor and save to trace to be
read by ExpressionCodegen later
2015-02-11 18:10:39 +03:00
Alexander Udalov c84486f860 Refactor CodegenContext and subclasses
Drop unused methods, inline parameters, fix warnings, etc.
2015-02-11 18:10:38 +03:00
Alexander Udalov 61a27da8d5 Move and simplify AsmUtil.writeOuterClassAndEnclosingMethod 2015-02-11 18:10:36 +03:00
Alexander Udalov a280599969 Fix wrong checkcast for === on objects
#KT-6747 Fixed
2015-02-11 18:10:35 +03:00
Andrey Breslav 0e972acf8c == turned into a safe-call 2015-02-10 06:55:46 +01: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
Alexander Udalov 5c2d0c6173 Generate not-null assertions on extension receiver parameters 2015-02-03 21:40:39 +03:00
Andrey Breslav da639039bd KT-6698 Bad class file when using a star-projection on a Java's recursive generic parameter
#KT-6698 Fixed
2015-02-02 19:52:00 +03:00