[FIR & IR] Support of default values for arguments in expect functions
Add FirActualDeclarationChecker that checks expect/actual return types ^KT-56331 Fixed, ^KT-56334 Fixed
This commit is contained in:
committed by
Space Team
parent
a54b56d74e
commit
d87619e06e
Vendored
+16
-14
@@ -76,6 +76,19 @@ FILE: functionCallWithGenericResult.kt
|
||||
public? final? [RAW_FIR] fun bar(): Foo<String>? { LAZY_BLOCK }
|
||||
public final [STATUS] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionCallWithGenericResult.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
public? [RAW_FIR] [ContainingClassKey=Foo] constructor<[RAW_FIR] T : CharSequence>(): R|Foo<T>| {
|
||||
LAZY_super<R|kotlin/Any|>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): Foo<String>? { LAZY_BLOCK }
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: <implicit> = bar#()
|
||||
}
|
||||
|
||||
ARGUMENTS_OF_ANNOTATIONS:
|
||||
FILE: functionCallWithGenericResult.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
@@ -85,7 +98,9 @@ FILE: functionCallWithGenericResult.kt
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): Foo<String>? { LAZY_BLOCK }
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: <implicit> = bar#()
|
||||
}
|
||||
|
||||
CONTRACTS:
|
||||
FILE: functionCallWithGenericResult.kt
|
||||
@@ -126,19 +141,6 @@ FILE: functionCallWithGenericResult.kt
|
||||
[RAW_FIR] lval x: <implicit> = bar#()
|
||||
}
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionCallWithGenericResult.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
public? [RAW_FIR] [ContainingClassKey=Foo] constructor<[RAW_FIR] T : CharSequence>(): R|Foo<T>| {
|
||||
LAZY_super<R|kotlin/Any|>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): Foo<String>? { LAZY_BLOCK }
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: <implicit> = bar#()
|
||||
}
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: functionCallWithGenericResult.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
|
||||
Vendored
+22
-20
@@ -118,6 +118,25 @@ FILE: functionWithGenericExpectedTypeInside.kt
|
||||
public? final? [RAW_FIR] fun bar(): <implicit> { LAZY_BLOCK }
|
||||
public final [STATUS] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionWithGenericExpectedTypeInside.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
public? [RAW_FIR] [ContainingClassKey=Foo] constructor<[RAW_FIR] T : CharSequence>(): R|Foo<T>| {
|
||||
LAZY_super<R|kotlin/Any|>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] class Bar : Foo<String> {
|
||||
public? [RAW_FIR] [ContainingClassKey=Bar] constructor(): R|Bar| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): <implicit> { LAZY_BLOCK }
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: Foo<String> = bar#()
|
||||
}
|
||||
|
||||
ARGUMENTS_OF_ANNOTATIONS:
|
||||
FILE: functionWithGenericExpectedTypeInside.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
@@ -133,7 +152,9 @@ FILE: functionWithGenericExpectedTypeInside.kt
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): <implicit> { LAZY_BLOCK }
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: Foo<String> = bar#()
|
||||
}
|
||||
|
||||
CONTRACTS:
|
||||
FILE: functionWithGenericExpectedTypeInside.kt
|
||||
@@ -192,25 +213,6 @@ FILE: functionWithGenericExpectedTypeInside.kt
|
||||
[RAW_FIR] lval x: Foo<String> = bar#()
|
||||
}
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionWithGenericExpectedTypeInside.kt
|
||||
public? open [RAW_FIR] class Foo<[RAW_FIR] T : CharSequence> : R|kotlin/Any| {
|
||||
public? [RAW_FIR] [ContainingClassKey=Foo] constructor<[RAW_FIR] T : CharSequence>(): R|Foo<T>| {
|
||||
LAZY_super<R|kotlin/Any|>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] class Bar : Foo<String> {
|
||||
public? [RAW_FIR] [ContainingClassKey=Bar] constructor(): R|Bar| {
|
||||
LAZY_super<<implicit>>
|
||||
}
|
||||
|
||||
}
|
||||
public? final? [RAW_FIR] fun bar(): <implicit> { LAZY_BLOCK }
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun resolveMe(): R|kotlin/Unit| {
|
||||
[RAW_FIR] lval x: Foo<String> = bar#()
|
||||
}
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: functionWithGenericExpectedTypeInside.kt
|
||||
public open [TYPES] class Foo<[TYPES] T : R|kotlin/CharSequence|> : R|kotlin/Any| {
|
||||
|
||||
+7
-6
@@ -27,9 +27,15 @@ STATUS:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
public final [STATUS] fun <[STATUS] T : R|kotlin/Int|, [STATUS] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun <[EXPECT_ACTUAL_MATCHING] T : R|kotlin/Int|, [EXPECT_ACTUAL_MATCHING] K> resolveMe(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
ARGUMENTS_OF_ANNOTATIONS:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun <[ARGUMENTS_OF_ANNOTATIONS] T : R|kotlin/Int|, [ARGUMENTS_OF_ANNOTATIONS] K> resolveMe(): R|kotlin/Unit| { LAZY_BLOCK }
|
||||
public final [ARGUMENTS_OF_ANNOTATIONS] fun <[ARGUMENTS_OF_ANNOTATIONS] T : R|kotlin/Int|, [ARGUMENTS_OF_ANNOTATIONS] K> resolveMe(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
CONTRACTS:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
@@ -46,11 +52,6 @@ FILE: functionWithTypeParameters.kt
|
||||
public final [ANNOTATIONS_ARGUMENTS_MAPPING] fun <[ANNOTATIONS_ARGUMENTS_MAPPING] T : R|kotlin/Int|, [ANNOTATIONS_ARGUMENTS_MAPPING] K> resolveMe(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
EXPECT_ACTUAL_MATCHING:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
public final [EXPECT_ACTUAL_MATCHING] fun <[EXPECT_ACTUAL_MATCHING] T : R|kotlin/Int|, [EXPECT_ACTUAL_MATCHING] K> resolveMe(): R|kotlin/Unit| {
|
||||
}
|
||||
|
||||
BODY_RESOLVE:
|
||||
FILE: functionWithTypeParameters.kt
|
||||
public final [BODY_RESOLVE] fun <[BODY_RESOLVE] T : R|kotlin/Int|, [BODY_RESOLVE] K> resolveMe(): R|kotlin/Unit| {
|
||||
|
||||
Reference in New Issue
Block a user