Commit Graph

1096 Commits

Author SHA1 Message Date
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