Alexander Udalov
c04f63e157
Change object deserialization strategy
...
Objects now have synthetic class objects in deserialization as well. "Class"
proto message now can have a synthetic class object proto within, if it's not
contained in any external class file, which is the case with objects. Drop
"class_object_present" field from binary format, since its value is equivalent
to the presence of "class_object" field
2013-12-02 19:55:21 +04:00
Mikhael Bogdanov
9037449313
Inline flag calculation through inline annotation
2013-11-26 12:53:07 +04:00
Andrey Breslav
4ac7afbb9f
Module annotations-ext removed. Annotations are moved to runtime
2013-11-21 20:47:48 +04:00
Alexander Udalov
a77d6a006d
Cleanup ClassDescriptorImpl & ErrorClassDescriptor
...
ClassDescriptorImpl now extends ClassDescriptorBase and reuses most of its
functionality. ErrorClassDescriptor now is initialized in its own constructor.
Inline trivial arguments everywhere
2013-11-21 19:34:51 +04:00
Alexander Udalov
223bf11de6
Minor, NamedMembers.toString()
2013-11-21 19:34:50 +04:00
Alexander Udalov
2c6bf6171f
Rename ClassKind.isObject -> isSingleton
...
"isObject" gives a false impression that this is a check if the kind is OBJECT
2013-11-21 19:34:50 +04:00
Andrey Breslav
d9444fea09
printScopeStructure() introduced for debugging
2013-11-21 13:07:38 +04:00
Andrey Breslav
083644ea43
Support parameter annotations. Fix class path and test data
2013-11-21 13:07:36 +04:00
Andrey Breslav
ef2ae0f398
Consider packages equal if their fqNames are equal
2013-11-21 13:07:36 +04:00
Andrey Breslav
9e446373e3
Old JDR and test data fixed
2013-11-21 13:07:35 +04:00
Alexander Udalov
e8089cc461
Synthetic class object of enum should always be public
...
#KT-2834 Fixed
2013-11-18 19:46:01 +04:00
Alexander Udalov
8b5aa94484
Extract SpecialNames.isClassObjectName
2013-11-14 19:11:20 +04:00
Alexander Udalov
69ed375ce1
Extract SpecialNames utility class
2013-11-14 19:11:19 +04:00
Andrey Breslav
4fa691f4b4
Ignore @Nullable/@NotNull annotations when deserializing Kotiln descriptors
...
This is needed because we write these annotations to class files on all API callables automatically. Seeing all these annotations on descriptors is no good
2013-11-11 17:20:16 +04:00
Andrey Breslav
641ed568f2
Extract method
2013-11-11 17:20:15 +04:00
Mikhael Bogdanov
7857dc5ba9
KT-3812 Can't work with akka via kotlin - java.lang.AssertionError: Couldn't resolve class *$
...
KT-4036 Couldn't resolve inner class akka.io.Tcp.Command.class
#KT-3812 Fixed
#KT-4036 FIxed
2013-10-31 16:42:54 +04:00
Andrey Breslav
ffd9b80f76
JavaClassDescriptor interface extracted
2013-10-29 14:21:55 +04:00
Andrey Breslav
ed95463d1e
Map Nothing to java.lang.Void
2013-10-25 15:39:01 +04:00
Andrey Breslav
1ff0ffbac6
Map jet.Hashable to java.lang.Object, to avoid NoClassDefFound exceptions
2013-10-25 15:39:01 +04:00
Alexander Udalov
dd50438c78
Deserialize annotations on property setter parameters
2013-10-22 23:08:34 +04:00
Alexander Udalov
938a906bcd
Deserialize annotations on value parameters of functions
2013-10-22 23:08:33 +04:00
Alexander Udalov
b7789da3b9
Load annotations on properties declared in traits
2013-10-17 19:01:45 +04:00
Andrey Breslav
3960426698
TypeProjection interface extracted
2013-10-17 18:15:51 +04:00
Alexander Udalov
2445d04338
Fix synthetic method generation for extension properties
...
If several annotated extension properties with the same name were declared in
one class, JVM issued a ClassFormatError, since we generated a synthetic method
for each of them with the same name and signature. Make the signature of this
synthetic method depend on a receiver parameter, if a property has one
2013-10-16 14:59:37 +04:00
Alexander Udalov
806d264771
Write full synthetic method signature for annotated property
...
This will be needed to support annotated extension properties, since they have
the same name but different signatures
2013-10-16 14:59:36 +04:00
Alexander Udalov
1fdb86f733
JavaArrayAnnotationArgument.getElements() returns List
2013-10-15 20:34:44 +04:00
Alexander Udalov
5b916ea108
Type parameters/arguments constitute lists, not collections
2013-10-15 20:34:44 +04:00
Alexander Udalov
0958e63be2
JavaMethod.getValueParameters() returns List
2013-10-15 20:22:59 +04:00
Andrey Breslav
d52f2e25b0
AnnotationDescriptor interface extracted
2013-10-15 19:54:39 +04:00
Andrey Breslav
cd275fd814
'runtime' module replaced by 'kotlin-runtime' library
2013-10-14 14:42:25 +04:00
Andrey Breslav
d7936b7ea4
Do not fail when a class is not found
2013-10-06 17:01:40 +04:00
Andrey Breslav
0765e89b19
Weakly retained memoized functions moved out of util.runtime
2013-10-05 16:59:57 +04:00
Andrey Breslav
239ca9728d
StorageManager API does not use Computable and Function and more
2013-10-05 16:59:57 +04:00
Andrey Breslav
7d1c46ed2c
Getting rid of Computable and Function in lazy values and memoized functions
2013-10-05 16:59:56 +04:00
Andrey Breslav
4d28dfada6
Lazy values and memoized functions conform to Kotlin's function interfaces
2013-10-05 16:59:56 +04:00
Alexander Udalov
9d7968457f
JDR doesn't depend on intellij-core
2013-10-04 18:32:42 +04:00
Alexander Udalov
89dbafb6be
Rename KotlinClassFileHeader and related classes
2013-10-04 18:32:42 +04:00
Alexander Udalov
c3abd1c26f
Delete LOG.error from ReadDataFromAnnotationVisitor
...
These conditions can happen on a broken binary data, no need to report an error
about it
2013-10-04 18:32:42 +04:00
Alexander Udalov
098d183a72
Remove Logger from AnnotationDescriptorDeserializer
...
Use abstract ErrorReporter instead
2013-10-04 18:32:42 +04:00
Alexander Udalov
ef7bb0cdf4
Delete LOG.warn about number of type arguments from JDR
...
This can happen when loading symbols from incorrect Java sources, which is OK
2013-10-04 18:32:41 +04:00
Alexander Udalov
f218877cf2
Get rid of dependency of PackageClassUtils on StringUtil
2013-10-04 18:32:41 +04:00
Alexander Udalov
5f0c593bb8
Minor, inline methods, use String instead of StringUtil
2013-10-04 18:32:41 +04:00
Alexander Udalov
edda5d8801
Move AssertInvisibleInResolver check to frontend.java
...
This is a dirty hack, taking advantage of the fact that
JavaResolverCache.getClass() is called exactly once and right after this check
2013-10-04 18:32:41 +04:00
Alexander Udalov
dbba6c614b
Rename JvmClassName.getFqName() and add a warning
...
All usages of this method as of right now seem wrong, as they don't work in the
case of classes which contain dollars in their names -- dollars get replaced to
dots
2013-10-04 18:32:41 +04:00
Alexander Udalov
e8d4aae48b
Minimize usages of JvmClassName.getFqName()
2013-10-04 18:32:41 +04:00
Alexander Udalov
044a47905e
Get rid of dependency on Guava's Multimap
...
Replace with a hand-written multi-map
2013-10-04 18:32:41 +04:00
Alexander Udalov
3d5e128267
Remove trivial dependencies of JDR on Guava
2013-10-04 18:32:41 +04:00
Alexander Udalov
fc78971aea
Delete JvmClassName.getAsmType()
2013-10-04 18:32:40 +04:00
Alexander Udalov
521496b188
Delete JvmPrimitiveType.getAsmType()
...
Create PrimitiveTypesUtil in frontend.java for this and other utilities
2013-10-04 18:32:40 +04:00
Alexander Udalov
f4abaaee10
Delete JvmClassName.byType
...
Replace JvmClassName by ASM Type in many places of JVM codegen: it wasn't used
to abstract anything, but there was a lot of useless conversions between the
two
2013-10-04 18:32:39 +04:00