[FIR] implicit type: avoid redundant property and function transformations

This is a contract violation – we can touch only bodies during this phase

^KT-56551
This commit is contained in:
Dmitrii Gridin
2023-09-21 18:07:19 +02:00
committed by Space Team
parent ddc4fac896
commit f124ba627d
42 changed files with 359 additions and 318 deletions
@@ -1,4 +0,0 @@
// Functions can be recursively annotated
annotation class ann(val x: Int)
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>bar()<!>) fun foo() = 1
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>) fun bar() = 2
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// Functions can be recursively annotated
annotation class ann(val x: Int)
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>bar()<!>) fun foo() = 1
@@ -1,4 +0,0 @@
// Functions can be recursively annotated
annotation class ann(val x: Int)
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>bar()<!>) fun foo() = 1
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>foo()<!>) fun bar() = 2
@@ -1,3 +0,0 @@
// Functions can be recursively annotated
annotation class ann(val x: Int)
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>foo()<!>) fun foo() = 1
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// Functions can be recursively annotated
annotation class ann(val x: Int)
@ann(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>foo()<!>) fun foo() = 1
@@ -1,6 +0,0 @@
package myPack
annotation class Anno(val number: Int)
@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>function(42)<!>)
fun function(@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>function(24)<!>) param: Int = <!TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>function(0)<!>) = 1
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package myPack
annotation class Anno(val number: Int)
@@ -4,4 +4,4 @@ package myPack
@Target(AnnotationTarget.TYPE)
annotation class Anno(val number: Int)
fun function(param: @Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>function(42)<!>) Int) = 1
fun function(param: @Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>function(42)<!>) Int) = 1
@@ -1,10 +0,0 @@
package myPack
annotation class Anno(val number: Int)
@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>prop<!>)
var prop
@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>prop<!>)
get() = 22
@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>prop<!>)
set(@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>prop<!>) value) = Unit
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package myPack
annotation class Anno(val number: Int)
@@ -1,5 +0,0 @@
package myPack
annotation class Anno(val number: Int)
fun @receiver:Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>42.function()<!>) Int.function() = 1
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package myPack
annotation class Anno(val number: Int)
@@ -1,5 +0,0 @@
package myPack
annotation class Anno(val number: Int)
val @receiver:Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>42.prop<!>) Int.prop get() = 22
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
package myPack
annotation class Anno(val number: Int)
@@ -4,4 +4,4 @@ package myPack
@Target(AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val number: Int)
fun <@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>function<String>()<!>) T> function() = 1
fun <@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>function<String>()<!>) T> function() = 1
@@ -4,4 +4,4 @@ package myPack
@Target(AnnotationTarget.TYPE_PARAMETER)
annotation class Anno(val number: Int)
val <@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST, TYPECHECKER_HAS_RUN_INTO_RECURSIVE_PROBLEM!>42.prop<!>) T> T.prop get() = 22
val <@Anno(<!ANNOTATION_ARGUMENT_MUST_BE_CONST!>42.prop<!>) T> T.prop get() = 22