Alexander Udalov
73e4287aee
Initial support of annotation loading at runtime
...
In order to locate an annotated entity, we need to implement almost the whole
Java element model (which will be used anyway for Java descriptor loading)
2015-03-11 16:42:17 +03:00
Alexander Udalov
356f54b5df
Initial support of descriptor loading at runtime
2015-03-11 16:42:15 +03:00
Pavel V. Talanov
9ecf95532e
Replace 'class object' with default object in project code
2015-03-10 18:07:46 +03:00
Alexander Udalov
ed022f892b
Drop JavaTypeParameter#getIndex
2015-03-07 02:32:14 +03:00
Alexander Udalov
ca8831097f
Resolve annotations on Java constructors
...
Also add tests on custom annotations on fields and methods
2015-03-07 02:32:14 +03:00
Alexander Udalov
e136025ac5
Show "kotlin.Any" in decompiled text for local/anonymous types
2015-03-07 02:30:28 +03:00
Pavel V. Talanov
f72f548a93
Add ClassDescriptor#isDefaultObject()
...
with dummy implementations for now
2015-03-05 13:06:12 +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
7f672f8078
Minor: remove redundant class objects from project code
2015-03-03 13:04:30 +03:00
Alexander Udalov
b99b1883bc
Drop unused parameter in JavaToKotlinClassMap and subclasses
2015-02-25 20:13:46 +03:00
Alexander Udalov
fca7a8c4a2
Drop PrimitiveTypesUtil, store desc in JvmPrimitiveType
2015-02-25 20:13:46 +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
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
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
Pavel V. Talanov
32aff01969
Increase abi version
2015-02-16 15:38:48 +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
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
42d2b97c09
Remove all class object related constants and utils from JvmAbi
2015-02-16 15:38:30 +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
Alexander Udalov
9f74d64d03
Avoid using FQNAME_TO_CLASS_DESCRIPTOR slice where module exists
2015-02-11 18:37:13 +03:00
Andrey Breslav
1d4109aec1
Retaining annotations on Java array types
2015-02-10 06:55:48 +01:00
Andrey Breslav
5db6bb04e3
Basic Java nullability warnings implemented
...
#KT-6723 In Progress
2015-02-10 06:55:47 +01:00
Alexander Udalov
4128655893
Report incomplete hierarchy error
...
This is the case when you reference a Java class in Kotlin whose superclass is
not resolved. Previously this fact was swallowed by LazyJavaClassDescriptor
leading to mysterious compilation errors
#KT-5129 Fixed
2015-02-09 21:14:02 +03:00
Alexander Udalov
cafc1ea24d
Fix resolution of inherited Kotlin properties in Java classes
...
#KT-6720 Fixed
2015-02-04 14:57:47 +03:00
Michael Nedzelsky
df8fed096c
add support for compile time constant serialization
2015-02-03 14:41:24 +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
Alexander Udalov
5903b8c4a7
Reorder and optimize dependencies between modules and libraries
...
- drop 'kotlin-runtime' and other dependencies which are exported by
other modules ('util' and 'util.runtime' in case of 'kotlin-runtime')
- make all Kotlin modules from the compiler depend on 'util' for clarity
- put 'util' and 'util.runtime' to the bottom of the list everywhere: when
kotlin-runtime gets reflection, classes from core/ should have higher
priority than their previous versions from kotlin-runtime.jar
2015-01-28 19:58:35 +03:00
Valentin Kipyatkov
974982463c
Visible classes take priority when resolving imports with *
2015-01-21 20:10:18 +03:00
Valentin Kipyatkov
b9d47ffe7a
Changed priority for default imports + default imports include all built-ins explicitly for java module
...
#KT-4374 Fixed
2015-01-21 20:10:18 +03:00
Alexey Tsvetkov
89f8442705
Fixed weird compilation issue by moving function to other package
2015-01-14 21:49:52 +03:00
Alexander Udalov
64c6055030
Rename jet -> kotlin in frontend, descriptors: resolve
...
org.jetbrains.jet.lang.resolve -> org.jetbrains.kotlin.resolve
2015-01-11 05:09:01 +03:00
Alexander Udalov
8affc31303
Rename jet -> kotlin in descriptor.loader.java, frontend.java
...
Split package 'lang/resolve/java' into two semantically different packages:
'resolve/jvm' and 'load/java'. Also rename 'lang/resolve/kotlin' to
'load/kotlin'
2015-01-11 05:08:57 +03:00
Alexander Udalov
524fdc2527
Rename jet -> kotlin in descriptors, types, names
...
org.jetbrains.jet.lang.descriptors -> org.jetbrains.kotlin.descriptors
org.jetbrains.jet.lang.types -> org.jetbrains.kotlin.types
org.jetbrains.jet.lang.resolve.name -> org.jetbrains.kotlin.name
2015-01-10 15:52:20 +03:00
Alexander Udalov
2ac4c65720
Move PlatformToKotlinClassMap to org.jetbrains.kotlin.platform
...
Also JavaToKotlinClassMap
2015-01-10 15:52:17 +03:00
Alexander Udalov
e88f89d1c6
Rename jet -> kotlin in descriptors: built-ins
...
org.jetbrains.jet.lang.types.lang -> org.jetbrains.kotlin.builtins
2015-01-10 15:52:16 +03:00
Alexander Udalov
2c414d880c
Rename jet -> kotlin in descriptors: renderer
...
org.jetbrains.jet.renderer -> org.jetbrains.kotlin.renderer
2015-01-10 15:51:59 +03:00
Alexander Udalov
05eaf81ba6
Rename jet -> kotlin and regroup files in serialization
...
org.jetbrains.jet.descriptors.serialization ->
org.jetbrains.kotlin.serialization
Deserialization goes to subpackage deserialization, built-ins-related stuff
goes to subpackage builtins
2015-01-09 16:37:22 +03:00
Alexander Udalov
00878cc31a
Rename java -> jvm, jet -> kotlin in module serialization.java
...
org.jetbrains.jet.descriptors.serialization ->
org.jetbrains.kotlin.serialization.jvm
2015-01-09 14:27:13 +03:00
Alexander Udalov
f447a860b1
Rename package jet -> kotlin in util.runtime (StorageManager)
...
org.jetbrains.jet.storage -> org.jetbrains.kotlin.storage
2015-01-08 23:32:08 +03:00
Alexander Udalov
f37e2f173d
Rename package jet -> kotlin in util, util-runtime
...
org.jetbrains.jet.config -> org.jetbrains.kotlin.config
org.jetbrains.jet.utils -> org.jetbrains.kotlin.utils
Also move coreLib.kt to package 'org.jetbrains.kotlin.utils'
2015-01-08 23:32:08 +03:00
Svetlana Isakova
d2becce1ac
Make vararg argument of java annotation have 'out' type
2014-12-27 00:55:23 +03:00
Pavel V. Talanov
d6881b78d2
Add hack to avoid stub ast mismatch when decompiling libraries built with M9 compiler
2014-12-24 16:49:59 +03:00
Michael Bogdanov
9e864f3c36
Fix java visibility publicity
...
#KT-6478 Fixed
2014-12-23 16:28:44 +03:00
Valentin Kipyatkov
cb5c12cda3
Completion of object's in type position - they can be used there
2014-12-18 15:47:59 +03:00
Ilya Ryzhenkov
be717f48f8
Stop using deprecated APIs
2014-12-16 17:33:24 +03:00