Alexander Udalov
8fedfd2d2a
Minor, add workaround for KT-43812
2020-12-09 19:37:49 +03:00
Dmitriy Novozhilov
2b22cbcdd2
Advance bootstrap to 1.5.0-dev-309
2020-12-09 19:37:47 +03:00
anastasiia.spaseeva
38b59ddabf
Wizard: Fix tests
2020-12-09 18:16:07 +03:00
anastasiia.spaseeva
71459db9dd
Wizard: Do not add bintray repoitory for eap versions
2020-12-09 18:16:06 +03:00
Denis.Zharkov
2d8a8d252b
Add 201 bunch files for JavaClass implementations
...
In 201, there's an old ASM version and PSI doesn't have record-related API
2020-12-09 16:47:25 +03:00
Denis.Zharkov
5a006a3690
Minor. Specify targetBackend for new IR tests
2020-12-09 16:47:25 +03:00
Denis.Zharkov
92b402759b
Report incorrect JVM target only when @JvmRecord is actually used
2020-12-09 16:47:25 +03:00
Denis.Zharkov
920ed558ee
Add some tests on corner cases for @JvmRecord
2020-12-09 16:47:25 +03:00
Denis.Zharkov
3aa55620d0
Prohibit explicit j.l.Record supertype even for @JvmRecord
2020-12-09 16:47:25 +03:00
Denis.Zharkov
2b29e70b64
Temporary avoid using constant from the new ASM
...
To make it compilable with 201 platform
2020-12-09 16:47:25 +03:00
Denis.Zharkov
f399f013dd
Temporary add another env variable JDK_15_0 that is set on TC agents
2020-12-09 16:47:24 +03:00
Denis.Zharkov
46c3979acd
Separate JVM target option from javac's --enable-preview analogue
2020-12-09 16:47:24 +03:00
Denis.Zharkov
3abd8b1ab2
Adapt CliTests for api requirement of @JvmRecord
2020-12-09 16:47:24 +03:00
Denis.Zharkov
dc1a1c5821
Support cross-module usages of @JvmRecord classes
...
The problem is that JvmRecord has SOURCE retention
Probably, increasing its retention might be a more reliable solution
(or in some other way serializing that the class is a record)
Just checking supertypes seems like a reasonable approximation:
only records kotlin are allowed to extend j.l.Record.
But the relevant diagnostic has been added only since 1.4.30,
so potentially there could have been exist a non-record class with
such supertype compiled by 1.4.20, but this case seems to be ill-formed
and marginal anyway.
For Java classes, it's irrelevant since they don't have member properties
(only synthetic extensions)
^KT-43677 In Progress
2020-12-09 16:47:24 +03:00
Denis.Zharkov
ac0604377d
Minor. Extract runJvmInstance for running BB tests with custom JVM
2020-12-09 16:47:23 +03:00
Denis.Zharkov
6e4f84dddf
Add @SinceKotlin("1.5") on JvmRecord annotation
2020-12-09 16:47:23 +03:00
Denis.Zharkov
ddbd62054f
Prohibit extending java.lang.Record from non-@JvmRecord classes
2020-12-09 16:47:23 +03:00
Denis.Zharkov
695d0dbfbb
Check JvmRecordSupport language feature before generating synthetic properties
2020-12-09 16:47:23 +03:00
Denis.Zharkov
a4bf36aee7
Support @JvmRecord for JVM_IR
...
^KT-43677 In Progress
2020-12-09 16:47:23 +03:00
Denis.Zharkov
f64980a597
Add check for bytecode target when @JvmRecord is used
...
^KT-43677 In Progress
2020-12-09 16:47:23 +03:00
Denis.Zharkov
b860a0c664
Separate JvmTarget::bytecodeVersion version into major/minor parts
2020-12-09 16:47:22 +03:00
Denis.Zharkov
c8851c4f75
Prohibit @JvmRecord for non-data classes
...
^KT-43677 In Progress
2020-12-09 16:47:22 +03:00
Denis.Zharkov
cc0b584445
Adapt test infrastructure to the latest changes
...
^KT-43677 In Progress
2020-12-09 16:47:22 +03:00
Denis.Zharkov
1d873a1a73
Move earlier generated tests
...
^KT-43677 In Progress
2020-12-09 16:47:22 +03:00
Denis.Zharkov
033f43794d
Prohibit irrelevant fields in @JvmRecord classes
...
^KT-43677 In Progress
2020-12-09 16:47:22 +03:00
Denis.Zharkov
1b575d7903
Add initial support for @JvmRecord in backend
...
- Write relevant class files attributes
- Emit property accessors with records-convention: propertyName -> propertyName()
^KT-43677 In Progress
2020-12-09 16:47:21 +03:00
Denis.Zharkov
26d525fa3c
Prepare ClassBuilder for record components
...
^KT-43677 In Progress
2020-12-09 16:29:04 +03:00
Denis.Zharkov
f6a3580c93
Add @JvmRecord diagnostics for open and enums
...
^KT-43677 In Progress
2020-12-09 16:29:04 +03:00
Denis.Zharkov
bef50c0342
Correct descriptor shape for @JvmRecord annotated classes
...
This commit adds relevant functions: hashCode, toString, equals
(if the class is not a data class)
And supertype j.l.Record
It only affects descriptor contents, i.e. works for FE
^KT-43677 In Progress
2020-12-09 16:29:04 +03:00
Denis.Zharkov
ca2e199b53
Minor. Move @JvmRecord tests to relevant directory
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
d4de2c4dce
Add check that we have JDK 15 in classpath when using @JvmRecord
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
85962d8312
Add check that @JvmRecord classes cannot inherit other classes
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
4f5db241ea
Add @JvmRecord annotation and relevant diagnostics
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
059e2aab7a
Make BlackBox tests for Java 9 generated
2020-12-09 16:29:03 +03:00
Denis.Zharkov
5d05419016
Add simple JDK15 BlackBox test
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
513f7177ca
Support loading Java records
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Denis.Zharkov
f25b7672a7
Introduce FULL_JDK_15 TestJdkKind
2020-12-09 16:29:03 +03:00
Denis.Zharkov
430da22b4b
Setup 15_PREVIEW LanguageLevel for Java sources in CLI
...
It's necessary to read preview-features related Java PSI parts
It should be OK to set it unconditionally because we don't compile Java
sources, only obtain declaration structure from them
2020-12-09 16:29:02 +03:00
Ilya Goncharov
ff52a3f867
[Gradle, JS] Null library and libraryTarget when they are null
...
^KT-43842 fixed
2020-12-09 15:59:40 +03:00
Svyatoslav Kuzmich
d4233f3f0e
[Wasm] Use Wasm GC arrays instead of JS arrays
...
JS arrays was a workaround for lack of arrays in Firefox Wasm GC prototype
Now with V8 as a test runner we can use proper arrays
2020-12-09 15:56:45 +03:00
Svyatoslav Kuzmich
d15af70a3e
[Wasm] Refactoring: replace "struct types" with "GC types"
...
In preparation for adding array types
2020-12-09 15:56:45 +03:00
Svyatoslav Kuzmich
4bb163fd1f
[Wasm IR] Add missing GC and function reference instructions
2020-12-09 15:56:44 +03:00
Svyatoslav Kuzmich
6063353b64
[Wasm] Generate stdlib WasmOp based on WasmOp from Wasm IR
2020-12-09 15:56:44 +03:00
Mikhael Bogdanov
1cfb81455c
Generate correct names for companion @JvmStatic accessors in annotation class
...
#KT-31389 Fixed
2020-12-09 13:26:14 +01:00
Alexander Udalov
3e0efeef31
JVM IR: add test for complex generic diamond hierarchy
...
This is a test for KT-43832, which is fixed in the previous commit.
2020-12-09 10:52:18 +01:00
Alexander Udalov
3370fa03d7
Revert "JVM IR: remove obsolete isDefaultImplsBridge in findInterfaceImplementation"
...
This reverts commit d41d1bf64d .
2020-12-09 10:52:18 +01:00
Dmitry Petrov
69c88a8a0a
PSI2IR KT-41284 use getters for open data class property values
...
'allopen' compiler plug-in can make data classes and their members open,
which is a compilation error in usual case, but makes sense for Spring
and other frameworks that generate proxy-classes.
2020-12-09 10:29:09 +03:00
Ilmir Usmanov
d8d30263d3
IC Mangling: search parents for method if descriptor is fake override
...
Otherwise, the compiler generates call using old mangling scheme
because classfile does not contain the method.
2020-12-09 07:34:29 +01:00
Alexander Dudinsky
e089e3606f
Disable testSingleAndroidTarget while OOM investigation in progress KT-43755
2020-12-09 09:27:34 +03:00
Nikolay Krasko
df9ecb0f4a
Dependency of js tests generation on compiler test data generation (KTI-404)
...
There was an error during "Generate Compiler Tests" execution:
Exception in thread "main" java.lang.RuntimeException: java.io.FileNotFoundException: compiler\testData\codegen\box\ranges\expression\inexactDownToMinValue.kt
The error was probable caused by parallel execution of tasks:compiler:generateTests and :js:js.tests:generateTests.
Exception could occur when GenerateRangesCodegenTestData.main(args) has
just removed directory with test data for regeneration but
:js:js.tests:generateTests had already seen files present.
#KTI-404 Fixed
2020-12-09 00:58:07 +03:00