[LL FIR] skip implicit type resolution for declarations without implicit type
This also fixes non-resolved contract calls in the case of wrong contract description. And we can avoid body calculation. ^KT-56551
This commit is contained in:
committed by
Space Team
parent
7ab8239c6e
commit
a128cbc97a
+22
-3
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirImplicitAwa
|
|||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.FirResolveContextCollector
|
||||||
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
import org.jetbrains.kotlin.fir.resolve.transformers.body.resolve.ImplicitBodyResolveComputationSession
|
||||||
import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater
|
import org.jetbrains.kotlin.fir.scopes.callableCopySubstitutionForTypeUpdater
|
||||||
|
import org.jetbrains.kotlin.fir.types.FirImplicitTypeRef
|
||||||
|
|
||||||
internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
internal object LLFirImplicitTypesLazyResolver : LLFirLazyResolver(FirResolvePhase.IMPLICIT_TYPES_BODY_RESOLVE) {
|
||||||
override fun resolve(
|
override fun resolve(
|
||||||
@@ -68,14 +69,30 @@ internal class LLFirImplicitBodyTargetResolver(
|
|||||||
|
|
||||||
override fun doLazyResolveUnderLock(target: FirElementWithResolveState) {
|
override fun doLazyResolveUnderLock(target: FirElementWithResolveState) {
|
||||||
when (target) {
|
when (target) {
|
||||||
is FirFunction -> resolve(target, BodyStateKeepers.FUNCTION)
|
is FirFunction -> {
|
||||||
is FirProperty -> resolve(target, BodyStateKeepers.PROPERTY)
|
if (target.returnTypeRef is FirImplicitTypeRef) {
|
||||||
is FirVariable -> resolve(target, BodyStateKeepers.VARIABLE)
|
resolve(target, BodyStateKeepers.FUNCTION)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is FirProperty -> {
|
||||||
|
if (target.returnTypeRef is FirImplicitTypeRef || target.backingField?.returnTypeRef is FirImplicitTypeRef) {
|
||||||
|
resolve(target, BodyStateKeepers.PROPERTY)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
is FirField -> {
|
||||||
|
if (target.returnTypeRef is FirImplicitTypeRef) {
|
||||||
|
resolve(target, BodyStateKeepers.FIELD)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
is FirScript -> {
|
is FirScript -> {
|
||||||
if (target.statements.any { it.isScriptDependentDeclaration }) {
|
if (target.statements.any { it.isScriptDependentDeclaration }) {
|
||||||
resolve(target, BodyStateKeepers.SCRIPT)
|
resolve(target, BodyStateKeepers.SCRIPT)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
is FirRegularClass,
|
is FirRegularClass,
|
||||||
is FirTypeAlias,
|
is FirTypeAlias,
|
||||||
is FirFile,
|
is FirFile,
|
||||||
@@ -83,6 +100,8 @@ internal class LLFirImplicitBodyTargetResolver(
|
|||||||
is FirAnonymousInitializer,
|
is FirAnonymousInitializer,
|
||||||
is FirDanglingModifierList,
|
is FirDanglingModifierList,
|
||||||
is FirFileAnnotationsContainer,
|
is FirFileAnnotationsContainer,
|
||||||
|
is FirEnumEntry,
|
||||||
|
is FirErrorProperty,
|
||||||
-> {
|
-> {
|
||||||
// No implicit bodies here
|
// No implicit bodies here
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -1,15 +1,15 @@
|
|||||||
BEFORE MODIFICATION:
|
BEFORE MODIFICATION:
|
||||||
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -1,15 +1,15 @@
|
|||||||
BEFORE MODIFICATION:
|
BEFORE MODIFICATION:
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
^ <Unresolved name: req>#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
req#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -5,7 +5,7 @@ public final [ResolvedTo(BODY_RESOLVE)] fun passLambdaValue([ResolvedTo(BODY_RES
|
|||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(l#)
|
<Unresolved name: contract>#(R|<local>/l|)
|
||||||
}
|
}
|
||||||
|
|
||||||
Int(42)
|
Int(42)
|
||||||
|
|||||||
Vendored
+3
-3
@@ -1,15 +1,15 @@
|
|||||||
BEFORE MODIFICATION:
|
BEFORE MODIFICATION:
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
^ <Unresolved name: req>#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
req#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Vendored
+3
-3
@@ -1,15 +1,15 @@
|
|||||||
BEFORE MODIFICATION:
|
BEFORE MODIFICATION:
|
||||||
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
public final [ResolvedTo(BODY_RESOLVE)] fun x(): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
^ <Unresolved name: req>#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
req#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -2,15 +2,15 @@ BEFORE MODIFICATION:
|
|||||||
public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int|
|
public final [ResolvedTo(BODY_RESOLVE)] var x: R|kotlin/Int|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int|
|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
^ <Unresolved name: req>#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
req#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
+3
-3
@@ -2,15 +2,15 @@ BEFORE MODIFICATION:
|
|||||||
public final [ResolvedTo(BODY_RESOLVE)] var <no name provided>: R|kotlin/Int|
|
public final [ResolvedTo(BODY_RESOLVE)] var <no name provided>: R|kotlin/Int|
|
||||||
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int|
|
public [ResolvedTo(BODY_RESOLVE)] [ContainingClassKey=A] get(): R|kotlin/Int|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
^ <Unresolved name: req>#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: req> <inline=Unknown> {
|
||||||
req#
|
^ <Unresolved name: req>#
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -245,7 +245,7 @@ FILE: [ResolvedTo(IMPORTS)] delegatedField.kt
|
|||||||
LAZY_super<<implicit>>
|
LAZY_super<<implicit>>
|
||||||
}
|
}
|
||||||
|
|
||||||
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|one/Foo| = prop#
|
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|one/Foo| = LAZY_EXPRESSION
|
||||||
|
|
||||||
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ FILE: [ResolvedTo(IMPORTS)] delegatedField.kt
|
|||||||
LAZY_super<<implicit>>
|
LAZY_super<<implicit>>
|
||||||
}
|
}
|
||||||
|
|
||||||
private final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] field $$delegate_0: R|one/Foo| = prop#
|
private final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] field $$delegate_0: R|one/Foo| = LAZY_EXPRESSION
|
||||||
|
|
||||||
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
|
|
||||||
|
|||||||
@@ -321,7 +321,7 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldScript.kts
|
|||||||
LAZY_super<<implicit>>
|
LAZY_super<<implicit>>
|
||||||
}
|
}
|
||||||
|
|
||||||
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|one/Foo| = prop#
|
private final [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] field $$delegate_0: R|one/Foo| = LAZY_EXPRESSION
|
||||||
|
|
||||||
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
|
|
||||||
@@ -351,7 +351,7 @@ FILE: [ResolvedTo(IMPORTS)] delegatedFieldScript.kts
|
|||||||
LAZY_super<<implicit>>
|
LAZY_super<<implicit>>
|
||||||
}
|
}
|
||||||
|
|
||||||
private final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] field $$delegate_0: R|one/Foo| = prop#
|
private final [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] field $$delegate_0: R|one/Foo| = LAZY_EXPRESSION
|
||||||
|
|
||||||
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
public final [ResolvedTo(STATUS)] fun baz([ResolvedTo(STATUS)] s: R|kotlin/String|): R|kotlin/Unit| { LAZY_BLOCK }
|
||||||
|
|
||||||
|
|||||||
@@ -261,13 +261,7 @@ FILE: [ResolvedTo(IMPORTS)] enumEntry.kt
|
|||||||
LAZY_super<R|kotlin/Enum<Foo>|>
|
LAZY_super<R|kotlin/Enum<Foo>|>
|
||||||
}
|
}
|
||||||
|
|
||||||
@R|Anno|[Types]() public final static [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = object : R|Foo| {
|
@R|Anno|[Types]() public final static [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = LAZY_EXPRESSION
|
||||||
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
|
||||||
super<R|Foo|>()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -292,13 +286,7 @@ FILE: [ResolvedTo(IMPORTS)] enumEntry.kt
|
|||||||
LAZY_super<R|kotlin/Enum<Foo>|>
|
LAZY_super<R|kotlin/Enum<Foo>|>
|
||||||
}
|
}
|
||||||
|
|
||||||
@R|Anno|[Types]() public final static [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = object : R|Foo| {
|
@R|Anno|[Types]() public final static [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = LAZY_EXPRESSION
|
||||||
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
|
||||||
super<R|Foo|>()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -326,13 +326,7 @@ FILE: [ResolvedTo(IMPORTS)] enumEntryScript.kts
|
|||||||
LAZY_super<R|kotlin/Enum<Foo>|>
|
LAZY_super<R|kotlin/Enum<Foo>|>
|
||||||
}
|
}
|
||||||
|
|
||||||
@R|Anno|[Types]() public final static [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = object : R|Foo| {
|
@R|Anno|[Types]() public final static [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = LAZY_EXPRESSION
|
||||||
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
|
||||||
super<R|Foo|>()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,13 +357,7 @@ FILE: [ResolvedTo(IMPORTS)] enumEntryScript.kts
|
|||||||
LAZY_super<R|kotlin/Enum<Foo>|>
|
LAZY_super<R|kotlin/Enum<Foo>|>
|
||||||
}
|
}
|
||||||
|
|
||||||
@R|Anno|[Types]() public final static [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = object : R|Foo| {
|
@R|Anno|[Types]() public final static [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] [ContainingClassKey=Foo] enum entry ResolveMe: R|Foo| = LAZY_EXPRESSION
|
||||||
private [ResolvedTo(RAW_FIR)] [ContainingClassKey=<anonymous>] constructor(): R|<anonymous>| {
|
|
||||||
super<R|Foo|>()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
public final static [ResolvedTo(STATUS)] [ContainingClassKey=Foo] fun values(): R|kotlin/Array<Foo>| {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+14
-34
@@ -46,41 +46,21 @@ FILE: [ResolvedTo(IMPORTS)] contract.kt
|
|||||||
|
|
||||||
IMPLICIT_TYPES_BODY_RESOLVE:
|
IMPLICIT_TYPES_BODY_RESOLVE:
|
||||||
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
||||||
public final inline [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
public final inline [ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] fun foo([ResolvedTo(IMPLICIT_TYPES_BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit| {
|
||||||
[Contract description] <
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
>
|
|
||||||
{
|
|
||||||
{
|
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
)
|
||||||
block#()
|
block#()
|
||||||
}
|
}
|
||||||
|
|
||||||
ANNOTATIONS_ARGUMENTS_MAPPING:
|
ANNOTATIONS_ARGUMENTS_MAPPING:
|
||||||
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
||||||
public final inline [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
public final inline [ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] fun foo([ResolvedTo(ANNOTATIONS_ARGUMENTS_MAPPING)] block: R|() -> kotlin/Unit|): R|kotlin/Unit| {
|
||||||
[Contract description] <
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
>
|
|
||||||
{
|
|
||||||
{
|
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
|
)
|
||||||
block#()
|
block#()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,15 +68,15 @@ BODY_RESOLVE:
|
|||||||
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
FILE: [ResolvedTo(IMPORTS)] contract.kt
|
||||||
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -108,15 +88,15 @@ FILE RAW TO BODY:
|
|||||||
FILE: [ResolvedTo(BODY_RESOLVE)] contract.kt
|
FILE: [ResolvedTo(BODY_RESOLVE)] contract.kt
|
||||||
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
public final inline [ResolvedTo(BODY_RESOLVE)] fun foo([ResolvedTo(BODY_RESOLVE)] block: R|() -> kotlin/Unit|): R|kotlin/Unit|
|
||||||
[Contract description] <
|
[Contract description] <
|
||||||
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(RAW_FIR)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
>
|
>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
kotlin#.contracts#.contract#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <implicit>.<anonymous>(): <implicit> <inline=Unknown> {
|
Q|kotlin|.<Unresolved name: contracts>#.<Unresolved name: contract>#(<L> = [ResolvedTo(BODY_RESOLVE)] contract@fun <anonymous>(): <ERROR TYPE REF: Unresolved name: callsInPlace> <inline=Unknown> {
|
||||||
callsInPlace#(block#, InvocationKind#.EXACTLY_ONCE#)
|
^ <Unresolved name: callsInPlace>#(R|<local>/block|, <Unresolved name: InvocationKind>#.<Unresolved name: EXACTLY_ONCE>#)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user