Commit Graph

263 Commits

Author SHA1 Message Date
Andrey Breslav 36bbd2c0e3 ErrorReporter is now Java-independent 2015-03-11 19:38:15 +03:00
Alexander Udalov ff0044f66a Use descriptors for reflection on extension properties 2015-03-11 16:42:34 +03:00
Alexander Udalov d1debf586c Support local classes in reflection 2015-03-11 16:42:32 +03:00
Alexander Udalov 64fdb18ad3 Use descriptors for reflection on class properties
- use ConcurrentHashMap as a cache of class loaders to module descriptors
- KClassImpl now has a lazy class descriptor and it manages property creation
  by looking (also lazily) for the property descriptor in the corresponding
  scope
- since deserialized descriptors have full information about where a JVM symbol
  is located and what signature it has, new tests will begin to pass where
  Kotlin model and Java reflection model differ, see classObjectVar.kt
2015-03-11 16:42:31 +03:00
Alexander Udalov af6e7cf140 Minor, remove ReflectJavaTypeProvider, throw unsupported instead
getTypeProvider() is in fact a bad abstraction because it's only used in SAM
construction, which does not happen at runtime
2015-03-11 16:42:26 +03:00
Alexander Udalov e95d22dcfe Refactor ReflectJavaConstructor.getValueParameters()
See https://youtrack.jetbrains.com/issue/KT-6886 for more information
2015-03-11 16:42:25 +03:00
Alexander Udalov 1054f004aa Load annotations on constructors and parameters of Kotlin reflected classes 2015-03-11 16:42:24 +03:00
Alexander Udalov 4fb420f3f1 Fix deserialization of enum annotation arguments at runtime 2015-03-11 16:42:23 +03:00
Alexander Udalov f36ef6f546 Provide equals, hashCode, toString for classes in reflection model 2015-03-11 16:42:21 +03:00
Alexander Udalov a14b301f31 Resolve annotations on all reflected elements
Annotation in NestedEnumArgument test is made public, because we try to load
annotation argument values eagerly and fail, since you can't invoke methods
reflectively on an object of a non-effectively-public class
2015-03-11 16:42:19 +03:00
Alexander Udalov c90f11b7e6 Support Java symbols in runtime descriptor loading 2015-03-11 16:42:18 +03:00
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