Dmitriy Novozhilov
1c9f9130e6
[FE] Prohibit implementing java sealed classes
2020-12-09 22:54:32 +03:00
Dmitriy Novozhilov
6809adee9c
[FE] Extract computation of sealed class inheritors into separate component
...
This is needed to provide more optimal provider in IDE plugin
2020-12-09 22:54:31 +03:00
Dmitriy Novozhilov
c0a1aecf9b
[FE] Add test for compiling against library with kotlin sealed classes and interfaces
...
#KT-20423
#KT-13495
2020-12-09 22:54:30 +03:00
Dmitriy Novozhilov
7897bb6adb
[FE] Support sealed classes and interfaces from java
...
KT-43551
KT-41215
2020-12-09 22:54:29 +03:00
Dmitriy Novozhilov
bdfb71b149
[FE] Add sealed classes related properties to java model
2020-12-09 22:54:28 +03:00
Dmitriy Novozhilov
8e9e34350f
[FE] Properly support sealed interfaces in exhaustiveness checker
...
#KT-20423
2020-12-09 22:54:27 +03:00
Dmitriy Novozhilov
9609954560
[FE] Allow using sealed modifier on interface and compute sealed modality for them
...
#KT-20423
2020-12-09 22:54:26 +03:00
Dmitriy Novozhilov
d605c7e491
[FE] Prohibit inheritors of sealed classes which are declared in different package
...
#KT-13495
2020-12-09 22:54:25 +03:00
Dmitriy Novozhilov
e76acc8ee0
[FE] Collect inheritors of sealed classes from new places in computeSealedSubclasses
...
#KT-13495
2020-12-09 22:54:24 +03:00
Dmitriy Novozhilov
70c61be1ef
[FE] Allow declare sealed class inheritors as inner or nested classes
...
#KT-13495
2020-12-09 22:54:22 +03:00
Dmitriy Novozhilov
f5f1984a60
[FE] Allow declare sealed class inheritors in different files in one module
...
#KT-13495
2020-12-09 22:54:21 +03:00
Jiaxiang Chen
1a377069dd
Allow AnalysisHandlerExtension to provide additional classpath on retry
2020-12-09 22:15:36 +03:00
Jiaxiang Chen
a6cb156ce9
Allow multiple retry for AnalysisHandlerExtension
2020-12-09 22:15:36 +03:00
Dmitry Petrov
313dfaf48c
JVM_IR KT-43812 erase generic arguments of SAM wrapper supertype
2020-12-09 20:06:02 +03:00
Mikhail Glukhikh
5daa406cdf
Use FirNamedFunctionSymbol in FirScope.processFunctionsByName
2020-12-09 19:53:27 +03:00
Jinseong Jeon
2dfba10d84
FIR: extend suspend conversion to intersection type
2020-12-09 19:53:25 +03:00
Mikhail Glukhikh
42ea4463ee
Fix type argument inconsistency in FirResolvedQualifier
2020-12-09 19:53:24 +03:00
Mikhail Glukhikh
d6e144c80e
[FIR] Extend callableNames known for JvmMappedScope
2020-12-09 19:53:23 +03:00
Mikhail Glukhikh
94014ba3eb
Fir2IrLazyClass: don't generate non-f/o properties from superclass
2020-12-09 19:53:22 +03:00
Mikhail Glukhikh
9b0ada2b0f
[FIR2IR] Generate f/o overridden symbol with FakeOverrideGenerator
...
#KT-43669 Fixed
2020-12-09 19:53:21 +03:00
Mikhail Glukhikh
91834ccf46
Use FirNamedFunctionSymbol in FirSimpleFunction & its inheritors
2020-12-09 19:53:19 +03:00
Mikhail Glukhikh
15021f30ff
Use FirNamedFunctionSymbol around processOverriddenFunctions
2020-12-09 19:53:18 +03:00
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