Commit Graph

2287 Commits

Author SHA1 Message Date
Evgeny Gerashchenko e267f0d4ef Safer check for optimized for loops. 2015-03-06 15:09:28 +03:00
Evgeny Gerashchenko 14b16ff87c KT-6916 Slow bytecode for downTo iteration like for (i in max downTo min)
#KT-6916 fixed
2015-03-06 13:43:02 +03:00
Pavel V. Talanov b73d7e19b7 Remove various getDefaultObject() methods 2015-03-06 12:41:46 +03:00
Dmitry Jemerov c029fa2ed0 add test for generating annotations on the setter of a delegated property; (KT-4169); properly generate backing field for delegated property with a setter 2015-03-05 19:04:18 +03:00
Evgeny Gerashchenko 8ab94a18ae Inlined trivial method classDescriptorToDeclaration 2015-03-05 15:19:30 +03:00
Evgeny Gerashchenko 7b6f83815c Unified obtaining psi element for descriptor. Now code for finding effective descriptors of fake override and finding source element for original declarations are separated. Old method DescriptorToSourceUtils.descriptorToDeclaration is still there, because it has ~90 usages. 2015-03-05 15:19:29 +03:00
Dmitry Jemerov 48b0afd84d correctly generate safe casts from Unit type
#KT-4494 fixed
2015-03-05 11:59:23 +01:00
Dmitry Jemerov 2835459920 correctly generate 'in' expressions with IntRange on RHS and a type other than Int on LHS 2015-03-05 11:33:24 +01:00
Dmitry Jemerov 1188be9070 generate correct bytecode for constructors using infix call syntax
#KT-4589 Fixed
2015-03-05 11:26:27 +01:00
Pavel V. Talanov 350864b22f Drop some of explicit ClassKind.CLASS_OBJECT and OBJECT usages 2015-03-05 13:05:56 +03:00
Pavel V. Talanov fc6f4208ec Rename: isObject -> isNonDefaultObject 2015-03-05 13:05:45 +03:00
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