Commit Graph

139 Commits

Author SHA1 Message Date
Alexander Udalov 69ed375ce1 Extract SpecialNames utility class 2013-11-14 19:11:19 +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 4105455179 Serialize value parameter indices on JVM
This will help to load annotations on value parameters
2013-10-22 23:08:33 +04:00
Andrey Breslav 51d54661a1 Common logic extracted from lazy type implementations 2013-10-17 18:15:52 +04:00
Andrey Breslav 3960426698 TypeProjection interface extracted 2013-10-17 18:15:51 +04:00
Svetlana Isakova 95c5e7ee23 rename: isSealed -> isFinal 2013-10-16 20:41:24 +04:00
Alexander Udalov 6e45533065 Deserialize constructors of static nested classes correctly
Similar to what is done in TopDownAnalyzer
 #KT-4081 Fixed
2013-10-15 21:03:52 +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 f3cd83c744 All storage-related code moved to util.runtime 2013-10-03 15:49:18 +04:00
Alexander Udalov f7db95f63c Minor refactoring in DeserializedClassDescriptor 2013-09-30 22:43:18 +04:00
Alexander Udalov a97bb80216 Serialize FQ names of Kotlin classes
This helps to avoid a nasty hack with loading inner Kotlin classes in JDR,
which makes it a bit easier to 'lazify' JDR, since now the container of a
Kotlin class is no longer required to be resolved eagerly before resolution of
the class itself
2013-09-30 22:43:18 +04:00
Alexander Udalov a16db2c773 Regenerate ProtoBuf files 2013-09-30 22:43:17 +04:00
Alexander Udalov 91cbe3e239 Move ClassSerializationUtil to 'compiler-tests' module
It's not used in 'serialization'
2013-09-30 22:43:17 +04:00
Andrey Breslav 0d84565570 name and containingDeclaration pulled up 2013-09-26 09:05:00 -07:00
Andrey Breslav 6bed3cdc59 getOriginal() pulled up 2013-09-26 09:04:59 -07:00
Andrey Breslav 2954af1b12 Unused method getPropertyByFieldReference() removed from JetScope and its implementations 2013-09-24 06:54:26 -07:00
Alexander Udalov 6f5cd974a3 Remove unneeded dependencies on 'frontend'
Move the two needed in 'descriptor.loader.java' classes to 'descriptors'
2013-09-20 18:02:13 +04:00
Alexander Udalov 5b03178820 Remove dependency of 'serialization' on 'frontend' 2013-09-18 18:45:35 +04:00
Alexander Udalov 5119afae52 Extract 'descriptors' module 2013-09-18 18:45:34 +04:00
Alexander Udalov 3504246983 Move AbstractLazyTypeParameterDescriptor to descriptors/impl/ 2013-09-18 17:21:12 +04:00
Alexander Udalov 8e59e789dc Extract util.runtime module out of util
Cleanup module dependencies: a lot of modules depended on 'frontend.java' just
to use something from 'util' module, exported by 'frontend.java', whereas they
really need nothing from 'frontend.java'. Also 'frontend.java' just exported
'util', not using anything from it.

Create a new 'util.runtime' module, which will be available at runtime. Make
'util' export 'util.runtime' and make all modules who needed these utils depend
on 'util' directly instead of 'frontend.java'
2013-09-18 17:21:11 +04:00
Alexander Udalov e8b10b3e4d Delete ErrorUtils.isError(TypeConstructor) 2013-09-18 16:46:07 +04:00
Alexander Udalov b7f1e61be9 Add JetType.isError()
Instead of ErrorUtils.isErrorType() which does several instanceof checks anyway
2013-09-18 16:41:48 +04:00
Alexander Udalov 8400d2b8cf Refactor OverridingUtil.resolveUnknownVisibilities
Get rid of dependency on BindingTrace, move the corresponding error reporting
logic to OverrideResolver
2013-09-18 16:40:35 +04:00
Alexander Udalov 6ca71349f8 Create DescriptorFactory utility class
Will contain utilities needed to create different common descriptors, such as
default getters/setters, enum values/valueOf methods, etc.
2013-09-18 16:40:34 +04:00
Alexander Udalov 6eeee31381 Remove unused dependency of 'serialization' module on 'junit' library 2013-09-18 16:40:34 +04:00
Alexander Udalov effbdcaa4c Move utilities out of OverrideResolver 2013-09-18 16:40:34 +04:00
Alexander Udalov f5faf8acb2 Get rid of dependency of class descriptors on BindingTrace 2013-09-18 16:40:34 +04:00
Pavel V. Talanov 255f08c8d7 Do not include DescriptorDeclaration#toString() in debug message
DescriptorDeclaration#toString() can be a costly operation (default implementation completely renders descriptor)
2013-09-10 17:42:54 +04:00
Pavel V. Talanov e4b2e32827 Return error class in case we are not able to find class for object property 2013-09-10 13:15:30 +04:00
Alexander Udalov 77e0d275db Remove unreachable code in AnnotationDescriptorDeserializer
Kotlin classes should only be discoverable by VirtualFileFinder
2013-09-06 21:28:49 +04:00
Svetlana Isakova 8d0573f448 added 'isDenotable' flag to TypeConstructor 2013-09-02 23:18:43 +04:00
Alexander Udalov de062274e9 Extract getEnumEntriesScope utility method 2013-08-29 16:48:09 +04:00
Alexander Udalov eff99e563b Write ProtoBuf.Package to .kotlin_package
Instead of a delimited list of callables. Also some minor refactorings
2013-08-23 17:39:26 +04:00
Alexander Udalov 196b829002 Serialize packages via descriptors in codegen
Disable KotlinPackage annotation for scripts, otherwise script analyzer tries
to add descriptors to a locked scope
2013-08-23 17:39:25 +04:00
Alexander Udalov 8cbdb2924a Minor, make callback method empty, not abstract 2013-08-23 17:39:24 +04:00
Alexander Udalov 132f77d3c4 Minor, delete SerializerProvider 2013-08-23 17:39:24 +04:00
Alexander Udalov 2e3005e431 Minor, deserialized package scope is now not abstract 2013-08-23 17:39:24 +04:00
Alexander Udalov b602db03f2 DescriptorFinder now can find class names in a package
This helps to get rid of "repeated class_name" field in Package protobuf
message. DescriptorFinder in resolve.java uses PSI to find all classes in a
package, and the finder for built-ins just reads .kotlin_class_names file
2013-08-23 17:39:24 +04:00
Alexander Udalov 87d4e35388 Deserialize annotations on class properties w/o fields
Annotations on properties without backing fields are stored on a special
synthesized method inside the class
2013-08-23 17:39:21 +04:00
Alexander Udalov 453b0e8f10 Write java signature of serialized descriptors efficiently
Instead of storing a string with the signature, write the name, return type and
parameter types separately, reusing the name table. Refactor the name table to
allow it to store not only names of Kotlin entities, but also arbitrary names
and fq-names
2013-08-23 17:39:21 +04:00
Alexander Udalov b44bc620e0 Implement getNamespace() for deserialized scope
DescriptorFinder now can find packages, pull the method up from
AbstractDescriptorFinder class
2013-08-23 17:39:19 +04:00
Alexander Udalov 93d200be82 Minor, move byte arrays logic to ClassData/PackageData 2013-08-23 17:39:19 +04:00
Alexander Udalov e63cef0848 Deserialize annotations on package members 2013-08-23 17:39:19 +04:00
Alexander Udalov 67ca7b78c4 Deserialize annotations on class members
Make 'Callable' message of descriptors.proto extensible, extend it in
java_descriptors.proto with a JVM signature of the member. This is needed in
order for annotation deserializer to find out which member in the compiled
bytecode corresponds to which descriptor in the hierarchy.

Create a new module 'serialization.java' containing everything related to
Java-specific serialization of descriptors.

Add an extension point to DescriptorSerializer, allowing to perform
platform-specific serialization on a callable
2013-08-23 17:39:18 +04:00
Alexander Udalov 548a2853aa Create an extension point to DescriptorSerializer
Extract the existing predicate logic into it
2013-08-23 17:39:18 +04:00
Alexander Udalov 4aeeafdff0 Deserialize annotations on classes
First version, not all kinds of value arguments of annotations are supported
2013-08-23 17:39:18 +04:00