Alexander Udalov
bc8bce7ca1
Provide "toString" for reflection objects
2014-07-02 01:55:55 +04:00
Alexander Udalov
c5d92cc03e
Provide "equals" and "hashCode" for reflection objects
2014-07-02 01:55:55 +04:00
Alexander Udalov
704de8992e
Support mapping between Java and Kotlin reflection objects
2014-07-02 01:55:55 +04:00
Alexander Udalov
c575ad9fb0
Fix test, remove duplicate annotation
...
It started to fail only now because KClassImpl constructor is now loading
class' annotations (previously annotations weren't loaded by Java reflection)
2014-07-02 01:55:54 +04:00
Alexander Udalov
f459005fe7
Fix GeneratedClassLoader so that it loads Package instances
2014-07-02 01:55:54 +04:00
Alexander Udalov
a38a396a43
Remove default import "kotlin.reflect"
...
Basic reflection is usable without any imports (with :: literals)
This reverts commit 9503056dd5 .
2014-07-02 01:55:53 +04:00
Alexander Udalov
d32a02f21a
Modify top-level/extension property hierarchy
...
- rename KTopLevelProperty to KTopLevelVariable
- create KTopLevelExtensionProperty, a subclass of KExtensionProperty
- create KTopLevelProperty, a superclass of KTopLevelVariable and
KTopLevelExtensionProperty. (In the future, it will have a container of type
KPackage.)
2014-07-02 01:55:53 +04:00
Alexander Udalov
f73b8b9ff8
Extract KForeignMemberProperty out of KMemberPropertyImpl
...
KClassImpl is now able to create a property by the name, according to its
origin
2014-07-02 01:55:52 +04:00
Alexander Udalov
9c5596cddb
Expose Java reflection objects out of Kotlin ones
2014-07-02 01:55:52 +04:00
Alexander Udalov
1ad037f621
Fix KClassOrigin for non-Kotlin classes
...
Check against presence of KotlinClass annotation
2014-07-02 01:55:21 +04:00
Alexander Udalov
8b619eceed
Make KMemberProperty's T parameter have a non-null bound
2014-07-02 01:26:25 +04:00
Alexander Udalov
7cbbeb257e
Add NotNull annotations to HashPMap
2014-07-02 01:26:25 +04:00
Alexander Udalov
e60428b540
Improve performance of foreignKClasses, add comments
2014-07-02 01:26:24 +04:00
Alexander Udalov
0fa6b40731
Make intermediate *Impl properties traits, not classes
...
Otherwise multiple inheritance of classes would be needed to make
implementations inherit correctly for mutable properties
2014-07-02 01:26:24 +04:00
Alexander Udalov
ef7fbe55cf
Make KClass instances weak in foreignKClasses
2014-07-02 01:26:24 +04:00
Alexander Udalov
a86cfdc5de
Add some simple tests on HashPMap
2014-07-02 01:26:23 +04:00
Alexander Udalov
47b08af66c
Inline HashPMap entry's getter methods
2014-07-02 01:26:23 +04:00
Alexander Udalov
b00022ef1c
Add JetBrains license to HashPMap, remove obsolete author tags and javadocs
2014-07-02 01:26:23 +04:00
Alexander Udalov
41aa12d249
Remove unneeded dependency on ListIterator in ConsPStack
2014-07-02 01:26:22 +04:00
Alexander Udalov
862a785c11
Use pcollections' HashPMap instead of ConcurrentHashMap in reflection
2014-07-02 01:26:22 +04:00
Alexander Udalov
fca9a0bca2
Delete unneeded interface dependencies of HashPMap
...
To reduce class count and to avoid unneeded invokeinterface's
2014-07-02 01:26:22 +04:00
Alexander Udalov
d83df541b7
Remove unneeded code and beautify HashPMap and its dependencies
2014-07-02 01:26:21 +04:00
Alexander Udalov
58bc611e3a
Copy pcollections's HashPMap to kotlin/reflect/jvm/internal
...
It will be used for caching KClass instances for foreign (Java) classes
2014-07-02 01:26:21 +04:00
Alexander Udalov
89d6f25fb6
Fix initialization order of KClass field and class object fields
2014-07-02 01:26:21 +04:00
Alexander Udalov
c17f515d06
Construct reflection objects via static factory methods
...
JVM back-end now generates invocations of these methods instead of
KClass/K*Property/... constructors for two reasons:
1. It occupies less space in the bytecode
2. We can (to some degree) alter the implementation of the factory methods
without changing the ABI compatibility version
2014-07-02 01:26:20 +04:00
Alexander Udalov
e7f19c531a
Support 'accessible' for reflected properties on JVM
...
Calls Java reflection's isAccessible/setAccessible
2014-07-02 01:26:20 +04:00
Alexander Udalov
1275c84f92
Fail with IllegalAccessException on :: reference to private property
...
Instead of mysterious NoSuchMethodException
2014-07-02 01:26:20 +04:00
Alexander Udalov
a8e1de48b8
Support :: references to Java instance fields in codegen
...
#KT-1183 In Progress
2014-07-02 01:26:19 +04:00
Alexander Udalov
5ab83aad8a
Support references to extension properties in JVM codegen
...
#KT-1183 In Progress
2014-07-02 01:26:19 +04:00
Alexander Udalov
461cce103b
Support references to top level and member properties in JVM codegen
...
#KT-1183 In Progress
2014-07-02 01:26:19 +04:00
Alexander Udalov
59777e7df6
Generate "$kotlinClass"/"$kotlinPackage" reflection fields to every class
...
Some seemingly irrelevant tests were changed because now there's <clinit> in
almost every class and class initialization begins with executing it
2014-07-02 01:26:18 +04:00
Alexander Udalov
4ef089d2ed
Introduce KClass, KPackage and their JVM implementations
2014-07-02 01:26:18 +04:00
Alexander Udalov
aa4d6a4ea7
Support :: references to properties in frontend
...
#KT-1183 In Progress
2014-07-02 01:26:18 +04:00
Alexander Udalov
52dadfc264
Add test for obsolete issue
...
#KT-3311 Obsolete
2014-07-02 00:38:50 +04:00
Alexander Udalov
254a95ba1a
Improve non-null assertion messages
2014-07-02 00:38:50 +04:00
Alexander Udalov
d4c792d0ee
Fix errorlevel returned by kotlinc-*.bat scripts
...
Propagate errorlevel returned as an exit code from the compiler to the outside
world.
This may not work on Windows XP or earlier, but is required for Windows 7+
2014-07-02 00:38:49 +04:00
Natalia Ukhorskaya
47f4bbedda
Fix file separators in Codegen Tests on Windows
2014-07-01 12:17:01 +04:00
Natalia Ukhorskaya
261ba0e364
Fix Android tests after renaming codegen tests with Java
2014-06-30 13:03:05 +04:00
Alexander Udalov
46da00a9a7
Minor, fix typo
2014-06-26 22:03:01 +04:00
Alexander Udalov
2ce4219b43
Add sensible "toString()" to kotlin.jvm.internal.Ref
...
No tests added because it's difficult to test: codegen always unwraps refs to
the objects they are referencing
#KT-5205 Fixed
2014-06-26 22:03:01 +04:00
Alexander Udalov
c56f397f71
Don't fail when "deprecated" doesn't have a message
...
EA-57345
2014-06-26 22:03:00 +04:00
Alexander Udalov
c18fd179a9
Get rid of intellij Pair in TypeUtils
2014-06-26 22:02:59 +04:00
Alexander Udalov
beb66e2247
Minor, don't intersect sets, use retainAll instead
2014-06-26 22:02:59 +04:00
Alexander Udalov
eb11a7dc88
Move utilities out of runtime modules
...
DescriptorUtils & DescriptorSubstitutor contained a lot of utilities that were
used only in compiler & IDE. Move them closer to their usages
2014-06-26 22:02:59 +04:00
Alexander Udalov
e04f7c24fa
Alias 'kotlinc' for 'kotlinc-jvm'
2014-06-26 22:02:58 +04:00
Alexander Udalov
e09052bb1d
Unmark dist/kotlinc/bin/*.bat as executable on Unix
2014-06-26 22:02:58 +04:00
Alexander Udalov
760fd73a0a
Don't launch REPL on "kotlinc-jvm -version"
...
#KT-3169 Fixed
2014-06-26 22:02:58 +04:00
Alexander Udalov
16ec4c3805
Minor, add path utility to codegen tests
2014-06-26 22:02:57 +04:00
Alexander Udalov
aea230d677
Introduce black box with Java codegen tests
...
In contrast to "black box against Java", it supports cyclic dependencies
between Java and Kotlin sources in one test case
2014-06-26 20:57:40 +04:00
Alexander Udalov
09863445bb
Rename tests: boxWithJava -> boxAgainstJava
2014-06-26 20:57:40 +04:00