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
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
Alexander Udalov
b10e206144
IR: minor, deduplicate unbound symbol in error message
2020-12-04 22:12:57 +01:00
Mads Ager
5d9e86863a
[IR] Make isHidden and isAssignable explicit on IrValueParameter.
...
There were a couple of places where they were confused and
isAssignable was passed as a positional parameter in the position
of isHidden.
2020-12-04 17:04:45 +01:00
Alexander Udalov
d41d1bf64d
JVM IR: remove obsolete isDefaultImplsBridge in findInterfaceImplementation
2020-12-02 15:54:14 +01:00
Georgy Bronnikov
8a969dab7d
Bugfix for FIR
2020-12-02 09:47:34 +03:00
Georgy Bronnikov
b23d7a79b0
IR: get rid of WrappedDescriptorWithContainerSource
2020-12-02 09:47:34 +03:00
Georgy Bronnikov
c0cd9064d7
IR: IrMemberWithContainerSource
2020-12-02 09:47:34 +03: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
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
Dmitry Petrov
ee1e05fedd
KT-42151 fix type arguments in local class constructor reference types
2020-11-26 18:40:49 +03:00
Zalim Bashorov
0d5a0b207e
[IR] KotlinLikeDumper: add a note about some conventions used for TODO comments
2020-11-26 00:15:25 +03:00
Zalim Bashorov
c004269547
[IR] KotlinLikeDumper: unify and add more comments for the cases when used a syntax which is invalid in Kotlin
2020-11-26 00:15:24 +03:00
Zalim Bashorov
5a755054f8
[IR] dumpKotlinLike: add a comment about some conventions which could be unclear
2020-11-26 00:15:22 +03:00
Zalim Bashorov
90fdfbde68
[IR] KotlinLikeDumper: unify printing custom/non-standard modifiers
2020-11-26 00:15:19 +03:00
Zalim Bashorov
73771a3513
[IR] KotlinLikeDumper: don't use "D" suffix on double constants
2020-11-26 00:15:17 +03:00
Zalim Bashorov
ef9a901635
[IR] KotlinLikeDumper: unify representation for error nodes
2020-11-26 00:15:15 +03:00
Zalim Bashorov
f8690d0395
[IR] KotlinLikeDumper: minor, collapse an if to helper function and add few more todos
2020-11-26 00:15:14 +03:00
Zalim Bashorov
d7bd4240e1
[IR] dumpKotlinLike: don't crash when type argument is null
2020-11-26 00:15:12 +03:00
Zalim Bashorov
2773e4baca
[IR] KotlinLikeDumper.kt -> dumpKotlinLike.kt
2020-11-26 00:15:09 +03:00
Zalim Bashorov
36591ba5f7
[IR] KotlinLikeDumper: replace all usages of commentBlockH with commentBlock
2020-11-26 00:15:07 +03:00
Zalim Bashorov
f9fe82e735
[IR] KotlinLikeDumper: process specially when IrElseBranch's condition is not true constant
2020-11-26 00:15:05 +03:00
Zalim Bashorov
0f10b5eb9e
[IR] KotlinLikeDumper: escape special symbols in Char and String constant values
2020-11-26 00:15:03 +03:00
Zalim Bashorov
92dda5cd92
[IR] KotlinLikeDumper.kt: cleanup
2020-11-26 00:15:02 +03:00
Zalim Bashorov
5b0efe2b64
[IR] KotlinLikeDumper: rearrange methods
2020-11-26 00:15:01 +03:00
Zalim Bashorov
d9dbc01c3e
[IR] KotlinLikeDumper: p.print("") -> p.printIndent()
2020-11-26 00:15:00 +03:00
Zalim Bashorov
c7d9b7adbe
[IR] KotlinLikeDumper: rearrange methods
2020-11-26 00:14:59 +03:00
Zalim Bashorov
76e959ef8c
[IR] KotlinLikeDumper: minor, update some comments
2020-11-26 00:14:58 +03:00
Zalim Bashorov
b6e37c1f89
[IR] KotlinLikeDumper: print class name for callable references without receivers
2020-11-26 00:14:56 +03:00
Zalim Bashorov
14dabed85a
[IR] KotlinLikeDumper.kt: move branch support to corresponding visit* methods
2020-11-26 00:14:54 +03:00
Zalim Bashorov
0d3d61862b
[IR] KotlinLikeDumper: better support for callable references
2020-11-26 00:14:52 +03:00
Zalim Bashorov
182cb52bdb
[IR] KotlinLikeDumper: various changes for value and type params
...
* support annotations on value parameters
* support new value parameter flags -- hidden, assignable
* extract and reuse logic for value and type parameters
2020-11-26 00:14:49 +03:00
Zalim Bashorov
1fd12b7b8a
[IR] KotlinLikeDumper: better support for enum and object accesses
2020-11-26 00:14:47 +03:00
Zalim Bashorov
82839e6a67
[IR] KotlinLikeDumper: support IrDynamic* nodes
2020-11-26 00:14:45 +03:00
Zalim Bashorov
68b17fe55b
[IR] KotlinLikeDumper: add more visit* to implement
2020-11-26 00:14:43 +03:00
Zalim Bashorov
b129788823
[IR] KotlinLikeDumper: minor updates for error nodes
2020-11-26 00:14:40 +03:00
Zalim Bashorov
a128cdc99c
[IR] KotlinLikeDumper: add more TODOs and remove some obsolete ones
2020-11-26 00:14:39 +03:00
Zalim Bashorov
bf20720590
[IR] KotlinLikeDumper: reformat
2020-11-26 00:14:38 +03:00
Zalim Bashorov
ad5df79e39
[IR] KotlinLikeDumper: merge Break & Continue
2020-11-26 00:14:36 +03:00
Zalim Bashorov
2775c89ebb
[IR] KotlinLikeDumper: print a parameter in catch
2020-11-26 00:14:33 +03:00
Zalim Bashorov
9daa86c1a2
[IR] KotlinLikeDumper: support labels on loops, break & continue
2020-11-26 00:14:31 +03:00
Zalim Bashorov
91c9d9d25c
[IR] KotlinLikeDumper: print whole string concatenation at one line
2020-11-26 00:14:29 +03:00
Zalim Bashorov
029ee6f2e7
[IR] KotlinLikeDumper: super and receiver on field accesses
2020-11-26 00:14:27 +03:00
Zalim Bashorov
0bf587ad4b
[IR] KotlinLikeDumper: deduplicate code between IrDelegatingConstructorCall and IrEnumConstructorCall
2020-11-26 00:14:26 +03:00
Zalim Bashorov
26dd009713
[IR] KotlinLikeDumper: change rendering for IrInstanceInitializerCall
2020-11-26 00:14:24 +03:00
Zalim Bashorov
cf5ba82453
[IR] KotlinLikeDumper: don't indent function expressions
2020-11-26 00:14:22 +03:00
Zalim Bashorov
6e318893f6
[IR] KotlinLikeDumper: support for IrEnumConstructorCall and better rendering for IrEnumEntry
2020-11-26 00:14:18 +03:00
Zalim Bashorov
ef2adfa835
[IR] KotlinLikeDumper: better support for calls and annotations
...
* IrCall
* IrConstructorCall
* IrDelegatingConstructorCall
* print arguments for annotations
2020-11-26 00:14:12 +03:00
Zalim Bashorov
6a1ab1b325
[IR] KotlinLikeDumper: WIP
...
* rearrange some declarations
* add space for before "BLOCK"
* add comment for "RETURNABLE BLOCK"
2020-11-26 00:14:10 +03:00