Commit Graph

16395 Commits

Author SHA1 Message Date
Andrey Breslav 6e1047685c Fix EA-57538 - assert: IDELightClassGenerationSupport.getContextForPackage 2014-07-02 19:48:09 +04:00
Alexander Udalov a78458b1d0 Update ReadMe after switching to IDEA 14 2014-07-02 19:10:31 +04:00
Andrey Breslav 3042846a20 Fix update_dependencies.xml on mac 2014-07-02 18:53:07 +04:00
Natalia Ukhorskaya 09e8d0dd66 Gradle plugin: unable to build project in multi flavor environment with gradle 0.11+
#KT-5348 Fixed
2014-07-02 14:17:50 +04:00
Andrey Breslav 1d45d20099 Change inspections' level to "WEAK WARNING" + disable "Explicit 'get'" by default 2014-07-02 14:02:47 +04:00
Nikolay Krasko 465dd45eae Merge remote-tracking branch 'origin/master' into idea14 2014-07-02 09:21:40 +04:00
Alexander Udalov 36f7cc742f Introduce NoSuchPropertyException and IllegalAccessException
No new tests added because it's difficult to model a situation where a
::-access is allowed but the code throws these exceptions at runtime
2014-07-02 01:58:22 +04:00
Alexander Udalov a84d528325 Improve performance of $kotlinClass field initializer
Don't load annotations reflectively in each class' <clinit>
2014-07-02 01:55:56 +04:00
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
Nikolay Krasko b92df2882c Merge remote-tracking branch 'origin/master' into idea14 2014-07-01 20:06:09 +04:00
Natalia Ukhorskaya 47f4bbedda Fix file separators in Codegen Tests on Windows 2014-07-01 12:17:01 +04:00
Nikolay Krasko cab3161ad7 Add sdk field to Kotlin new project wizard step in Idea 14
#KT-5338 Fixed
2014-06-30 15:37:20 +04:00
Natalia Ukhorskaya 261ba0e364 Fix Android tests after renaming codegen tests with Java 2014-06-30 13:03:05 +04:00
Nikolay Krasko 3b02f0e422 Load default descriptor in debugger tests 2014-06-27 15:21:52 +04:00
Nikolay Krasko d7474f2bc8 Update to idea 138.814 (EAP) 2014-06-27 15:15:28 +04:00