Commit Graph

16341 Commits

Author SHA1 Message Date
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
Alexander Udalov 544cf4f28d Rename JvmFunctionImplTypes -> JvmRuntimeTypes
Will be used for other JVM runtime types as well
2014-06-26 20:57:40 +04:00
Alexander Udalov ac8eb0f5e8 Add PackageClassUtils.getPackageClassInternalName() 2014-06-26 20:57:39 +04:00
Alexander Udalov 059538ce1b Extract kotlin-maven-plugin tests into a separate subproject
Because they need kotlin-runtime to run, which is built by kotlin-maven-plugin
2014-06-26 20:57:39 +04:00
Alexander Udalov a9b2fd964b Support nullable types on left-hand side of ::
#KT-1183 In Progress
2014-06-26 20:57:39 +04:00
Alexander Udalov 42991e05a1 Delete unjustified assert
It's ok to generate <clinit> in the light classes mode, it's not ok to generate
the code in it (currently there seems to be no sane way to assert that)
2014-06-26 20:57:39 +04:00
Alexander Udalov e31f2cfa23 Make protected static visibility reach members in the same package 2014-06-26 20:57:39 +04:00
Alexander Udalov 80b7f88c60 Regenerate tests 2014-06-26 20:57:39 +04:00
Zalim Bashorov 5f3b00ad44 Update to IDEA 135.1146 EAP 2014-06-26 19:22:36 +04:00
Zalim Bashorov 28228d23b1 JS stdlib: added missed constructors for HashSet, LinkedHashSet, HashMap and LinkedHashMap. 2014-06-26 16:33:14 +04:00
Zalim Bashorov 444932d4c1 JS backend: fixed wrong NPE when casting to generic type. 2014-06-26 14:55:56 +04:00
Zalim Bashorov 0d0751c3f9 Minor: JvmCodegenUtil#isNullableType -> TypeUtils#isNullableType 2014-06-26 14:55:56 +04:00
Alexey Sedunov e73ee4bbd6 Minor: Replace deprecated function call 2014-06-26 13:06:25 +04:00
Alexey Sedunov fa73c5825e Minor: Remove unused parameter 2014-06-26 13:06:24 +04:00
Alexey Sedunov f226d99d36 Pseudocode: Add valued instructions and unbound values to AbstractPseudoValueTest 2014-06-26 13:06:23 +04:00
Alexey Sedunov 21be468e6c Pseudocode: Merge all access instructions into single file 2014-06-26 13:06:22 +04:00
Alexander Udalov 3f51338320 Save executable flag of kotlinc-jvm and kotlinc-js after zip archiving 2014-06-25 22:32:16 +04:00
Alexander Udalov 71262bdf14 Output to the current directory by default ("-output .") 2014-06-25 22:32:16 +04:00
Alexander Udalov ca219f9880 Beautify kotlinc -help output 2014-06-25 22:32:16 +04:00
Alexander Udalov 5e994778d1 Add test on "kotlinc-js -help" output 2014-06-25 22:32:15 +04:00