Commit Graph

213 Commits

Author SHA1 Message Date
Alexander Udalov b8a97bf192 Minor, fix typo 2013-12-03 18:59:52 +04:00
Alexander Udalov d6e1af645f Upgrade ABI version after objects refactoring 2013-12-02 19:56:17 +04:00
Alexander Udalov 310a70bf84 Report a separate diagnostic on inheritance from singletons 2013-12-02 19:56:16 +04:00
Alexander Udalov dcedbed7e1 Minor, inline DescriptorUtils.getEnumEntriesScope 2013-12-02 19:56:15 +04:00
Alexander Udalov 8549cbb510 Minor, make field final 2013-12-02 19:56:15 +04:00
Alexander Udalov 92cdb0b6e7 Fix imports from objects
This almost reverts 345ecbf, since now properties are no longer created for
objects
2013-12-02 19:56:13 +04:00
Alexander Udalov 4526d96186 Delete JetScope.getObjectDescriptor() 2013-12-02 19:56:11 +04:00
Alexander Udalov 550df37056 Delete JetScope.getObjectDescriptors() 2013-12-02 19:56:11 +04:00
Alexander Udalov 9e6cc829fb Delete WritableScopeImpl.addObjectDescriptor() 2013-12-02 19:56:10 +04:00
Alexander Udalov c6cfeec6fc Delete VariableDescriptorForObject 2013-12-02 19:56:09 +04:00
Alexander Udalov cb6c98d4d6 Delete OBJECT_PROPERTY kind from binary format
We never create properties for objects anymore, except enum entries of Java
enums. Delete PropertyDescriptorForObjectImpl and its usages
2013-12-02 19:56:08 +04:00
Alexander Udalov 5a4cc1e2fe Put enum entries into enum class in JDR 2013-12-02 19:56:07 +04:00
Alexander Udalov 60e7722a82 Enum entries are put into enum class, not its class object 2013-12-02 19:56:06 +04:00
Alexander Udalov a5d6d6719c EnumValue now has a ClassDescriptor for its enum entry 2013-12-02 19:56:06 +04:00
Alexander Udalov 83ef095093 Change enum entry resolution strategy in JDR
Enum entry is now resolved into a class with a class object, which inherits
from the former class, as in the other parts of the compiler. Create a special
class EnumEntrySyntheticClassDescriptor which will be reused in deserialization
later
2013-12-02 19:56:06 +04:00
Alexander Udalov bf1ea5fb01 Drop NamespaceLikeBuilder.addObjectDescriptor 2013-12-02 19:56:05 +04:00
Alexander Udalov dd6cfcdc78 Resolve enum entries similar to objects in TypeHierarchyResolver 2013-12-02 19:56:04 +04:00
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
Alexander Udalov 26bd1ff189 Change object resolution strategy in lazy resolve 2013-12-02 19:55:20 +04:00
Alexander Udalov 6c74b10f6c Change object resolution strategy in TypeHierarchyResolver
Instead of creating a synthetic property descriptor for objects, create a
synthetic class object in it and make it inherit from the object. This way all
of object's members will be accessible via its class object
2013-12-02 19:55:20 +04:00
Alexander Udalov 18c59d5495 Treat anonymous objects as classes (ClassKind.CLASS)
They're not objects per se, i.e. they're not singletons
2013-12-02 19:55:19 +04:00
Alexander Udalov 008e5f0b13 Don't serialize default primary constructors
Drop "Callable primary_constructor" field, because it requires serializer to
serialize the fact that a class has a primary constructor. Default primary
constructors for objects etc. may not be serialized, because they can be
re-created trivially when they're loaded. There are three options: a class
doesn't have a primary constructor, a class has a default primary constructor,
a class has a custom primary constructor. This explains the change in
descriptors.proto
2013-12-02 19:52:44 +04:00
Mikhael Bogdanov ceda72e0ca Deserialization of function descriptors via DesirializedSimpleFunctionDescriptor 2013-12-02 18:30:42 +04:00
Mikhael Bogdanov 8533fd64ff Compiler inline on/off flag 2013-12-02 18:30:42 +04:00
Mikhael Bogdanov c89c465fec Diagnostics for wrong inlinable usage 2013-12-02 18:28:24 +04:00
Mikhael Bogdanov e7cc7d92c2 Make ReceiverParameterDescriptorImpl extends CallableDescriptor 2013-11-29 16:27:30 +04:00
Mikhael Bogdanov 9037449313 Inline flag calculation through inline annotation 2013-11-26 12:53:07 +04:00
Mikhael Bogdanov 868f4841be Inline keyword removal 2013-11-26 12:53:06 +04:00
svtk 1a34dffb1f Fixed inference in a simple case.
Try number lower bounds before upper bounds when computing a value.
2013-11-22 18:58:01 +04:00
Andrey Breslav 4ac7afbb9f Module annotations-ext removed. Annotations are moved to runtime 2013-11-21 20:47:48 +04:00
Alexander Udalov c7d5819ef2 Pull up getThisAsReceiverParameter() 2013-11-21 19:34:51 +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 62068bf741 Pull up getUnsubstitutedInnerClassesScope() 2013-11-21 19:34:50 +04:00
Alexander Udalov e9f102f3e6 Pull up getClassObjectType() 2013-11-21 19:34:50 +04:00
Alexander Udalov 97f2d568a3 Use StorageManager in AbstractClassDescriptor to create a lazy value 2013-11-21 19:34:50 +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 345ecbf4c0 Never import object descriptors, for they may overwrite corresponding vals 2013-11-21 13:07:39 +04:00
Andrey Breslav 0fa70b7e47 Move utility method to DescriptorUtils and make it more general 2013-11-21 13:07:38 +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
Andrey Breslav 11c8d0785b Extra information in assertion message 2013-11-21 13:07:35 +04:00
Andrey Breslav 814311075d Assertion message 2013-11-21 13:07:35 +04:00
Andrey Breslav ba8bcb2e9a Better diagnostics + basic recursion detection in memoized functions 2013-11-21 13:07:34 +04:00
Andrey Breslav 4aadf6e802 Storage manager framework uses Kotlin iterfaces 2013-11-21 13:07:34 +04:00
Andrey Breslav 0c2e1fb806 @NotNull annotations on descriptor classes 2013-11-21 13:07:34 +04:00
Andrey Breslav 6dde064791 Collections in interfaces marked @ReadOnly 2013-11-21 13:07:34 +04:00
Andrey Breslav bfbb200ba8 Only render exact function types in special syntax 2013-11-21 13:05:39 +04:00