Denis.Zharkov
5a8dc00a0d
Rename JvmBuiltInsSettings -> JvmBuiltInsCustomizer
2020-12-24 14:06:19 +03:00
Dmitriy Novozhilov
70c4bdf32e
[FE] Detect recursion when typealias referenced as annotation in its RHS
...
#KT-14612 Fixed
2020-12-24 13:44:04 +03:00
Ilya Chernikov
02c617468f
Add support for a callback on recursion for memoized functions
2020-12-21 09:43:43 +01:00
Alexander Udalov
eef06cded3
JVM IR: output stable ABI binaries by default
...
#KT-43592 Fixed
2020-12-20 23:14:54 +01:00
Alexander Udalov
3f517d7e8d
Add new metadata flag for class files compiled with FIR
...
Report a separate error when class files compiled with FIR are in
dependencies, in addition to the one for class files compiled with FE
1.0 + JVM IR.
#KT-43592
2020-12-20 23:14:30 +01:00
Alexander Udalov
cbd90c3af5
Refactor boolean IR ABI stability flag to enum
...
Introduce an enum DeserializedContainerAbiStability with two values.
This is needed in order to support another reason for ABI instability in
a subsequent commit, namely "unstable because compiled by FIR".
#KT-43592
2020-12-20 23:14:12 +01:00
Alexander Udalov
b7d32a8754
Minor, invert analysis flag that allows unstable dependencies
2020-12-20 23:13:50 +01:00
Victor Petukhov
48d9812d9e
Review fixes around type enhancement and loading type use annotations
2020-12-18 19:32:05 +03:00
Victor Petukhov
9a52863fbd
Report warnings about type mismatches based on freshly supported nullability annotations deeply
2020-12-18 19:32:05 +03:00
Victor Petukhov
d6017420de
Mark freshly supported annotations to use that mark for reporting corresponding warnings
2020-12-18 19:32:05 +03:00
Victor Petukhov
9693ea19fb
Add tests for type enhancement uncluding with compiled java
2020-12-18 19:32:05 +03:00
Victor Petukhov
6f8f531d87
Put type enhancement improvements under the compiler flag
2020-12-18 19:32:05 +03:00
Victor Petukhov
857cc92326
Support preference of TYPE_USE annotations to enhance over others like METHOD, FIELD and VALUE_PARAMETER to avoid double applying them in case of arrays: @NotNull Integer [] (both to the array element and to the entire array)
...
^KT-24392 Fixed
2020-12-18 19:32:04 +03:00
Victor Petukhov
f389654fea
Support type enhancement for super classes' types
2020-12-18 19:32:04 +03:00
Victor Petukhov
276498793f
Support enhancement of type parameter's bound for all nullability annotations
2020-12-18 19:32:04 +03:00
Victor Petukhov
8777d28228
Use new jetbrains annotations with type use target for "load java 8" tests
2020-12-18 19:32:04 +03:00
Victor Petukhov
6f64e2c036
Avoid a cycle of analysing of type parameters via checking that it's a type parameter first
2020-12-18 19:32:04 +03:00
Victor Petukhov
a89329e077
Support reading from class files of the type use annotations on type parameters and type arguments
...
^KT-11454 Fixed
2020-12-18 19:32:03 +03:00
Victor Petukhov
0833719a79
Support annotations on array types
...
^KT-24392 Fixed
^KT-18768 Fixed
2020-12-18 19:32:03 +03:00
Dmitriy Novozhilov
1fe5148f0d
[TEST] Extract compiler-specific test utils from :tests-common to new module
2020-12-16 19:52:29 +03:00
Dmitriy Novozhilov
d15c7861b2
[TEST] Invert dependency between :test-generator and :tests-common modules
...
This is needed to provide ability for declaring new implementations of
test generators, based on existing infrastructure, which won't add
dependency on :compiler:tests-common
Also this commit removes implicit dependency on :compiler:tests-common
from :compiler:tests-common-new
2020-12-16 19:52:29 +03:00
Dmitriy Novozhilov
bc7e18fb8a
[TEST] Regenerate tests after previous commit
2020-12-16 19:52:28 +03:00
Dmitriy Novozhilov
c8f3a4802e
[TEST] Introduce test-infrastructure-utils module and extract common test utilities here
2020-12-16 19:52:22 +03:00
Dmitriy Novozhilov
23c088afd6
[TEST-GEN] Reorganize package structure in :generators:test-generator module
2020-12-16 19:52:20 +03:00
Dmitriy Novozhilov
380e8a3814
[TEST-GEN] Extract run of TestGenerator to top of test generation DSL
2020-12-16 19:52:19 +03:00
Andrei Klunnyi
3af0257b38
KTIJ-664 [SealedClassInheritorsProvider]: IDE-specific implementation
2020-12-15 18:43:00 +01:00
Dmitriy Novozhilov
55b0775565
[FE] Call SealedClassInheritorsProvider only for sealed classes
2020-12-14 10:43:14 +03:00
Dmitriy Novozhilov
aacf934b49
[TEST] Drop machinery about experimental coroutines from compiler tests
2020-12-10 01:31:02 +03:00
Dmitriy Novozhilov
f8d6f79c17
[FE] Temporary disable exhaustiveness checker for java sealed classes
...
KT-43551
KT-41215
2020-12-09 22:54:33 +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
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
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
f5f1984a60
[FE] Allow declare sealed class inheritors in different files in one module
...
#KT-13495
2020-12-09 22:54:21 +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
513f7177ca
Support loading Java records
...
^KT-43677 In Progress
2020-12-09 16:29:03 +03:00
Ilmir Usmanov
516fce37db
Value classes: Allow unsigned arrays in annotations
...
including varargs, apparently.
So, we allow unsigned types and unsigned arrays in annotations,
but disallow user-defined inline classes.
#KT-23816 Fixed
2020-12-03 17:22:08 +01:00
Victor Petukhov
d25ad269e0
Reuse captured arguments for flexible type's bounds properly, by equality of type constructors modulo mutability and type argument
...
^KT-43630 Fixed
2020-12-03 11:13:41 +03:00
Victor Petukhov
9f58e4bcfe
Add FlexibleTypeBoundsChecker which can answer the question: "can two types be different bounds of the same flexible type?"; and provide the base bound for the given bound.
...
For instance: `MutableList` and `List` may be within the same flexible type.
2020-12-03 11:13:39 +03:00
Victor Petukhov
1ccbb09029
Fix formatting in flexibleTypes.kt
2020-12-03 11:13:38 +03:00
Ilmir Usmanov
129de76288
Value classes: Generate @JvmInline annotation for inline classes
...
but not for value classes.
Since inline classes and value classes share the same flag, we use
presence of the annotation to distinguish them.
2020-12-01 23:45:47 +01:00
Ilmir Usmanov
ca3e7cf1a7
Value classes: Report lacking @JvmInline only on JVM backend
...
Report when @JvmInline is applied on non-value class.
2020-11-27 23:52:07 +01:00
Ilmir Usmanov
92f1681de0
Value classes: treat @JvmInline value classes as inline classes
...
Report error on value classes without @JvmInline annotation.
Do not check for @JvmInline annotation in value classes since
it breaks reflection.
2020-11-27 23:52:06 +01:00
Ilmir Usmanov
6c68660ffd
Value classes: Render 'value' before class
2020-11-27 23:52:06 +01:00
Ilmir Usmanov
f158411f9a
Value classes: Increase JVM metadata version to distinguish
...
between inline and value classes.
2020-11-27 23:52:05 +01:00
Ilmir Usmanov
361ed117bb
Value classes: Add isValue property to class descriptors
...
Reuse isInline flag in proto and IR.
Check metadata version on deserialization.
2020-11-27 23:52:05 +01:00
Jinseong Jeon
d58e5b1d95
Remove unnecessary semi-colons
2020-11-25 16:55:09 +03:00
Kirill Shmakov
8ede19811d
Make mpp tests gutters aware of different platforms run
...
Behaviour is similar to the test suite gutters:
- simple triangle when there is no history
- triangle + red circle if some runs failed
- triangle + green circle if all runs passed
^KMM-100 Fixed.
2020-11-19 17:20:06 +03:00