diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java index bb8072a0083..3fc97204f64 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/ir/Fir2IrTextTestGenerated.java @@ -2176,6 +2176,12 @@ public class Fir2IrTextTestGenerated extends AbstractFir2IrTextTest { runTest("compiler/testData/ir/irText/firProblems/SignatureClash.kt"); } + @Test + @TestMetadata("SimpleTypeMarker.kt") + public void testSimpleTypeMarker() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt"); + } + @Test @TestMetadata("SyntheticSetterType.kt") public void testSyntheticSetterType() throws Exception { diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt index a8eb72f0d49..d0a0e3c4dab 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/calls/FirReceivers.kt @@ -67,6 +67,8 @@ sealed class ImplicitReceiverValue>( final override var type: ConeKotlinType = type private set + val originalType: ConeKotlinType = type + var implicitScope: FirTypeScope? = type.scope(useSiteSession, scopeSession, FakeOverrideTypeCalculator.DoNothing) private set diff --git a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt index 786b7c061d2..6db37b3e083 100644 --- a/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt +++ b/compiler/fir/resolve/src/org/jetbrains/kotlin/fir/resolve/transformers/body/resolve/FirExpressionsResolveTransformer.kt @@ -78,7 +78,7 @@ open class FirExpressionsResolveTransformer(transformer: FirBodyResolveTransform implicitReceiver?.boundSymbol?.let { callee.replaceBoundSymbol(it) } - val implicitType = implicitReceiver?.type + val implicitType = implicitReceiver?.originalType qualifiedAccessExpression.resultType = when { implicitReceiver is InaccessibleImplicitReceiverValue -> buildErrorTypeRef { source = qualifiedAccessExpression.source diff --git a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.kt.txt b/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.kt.txt deleted file mode 100644 index 8afcaf303af..00000000000 --- a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.kt.txt +++ /dev/null @@ -1,35 +0,0 @@ -inline fun Any.test1(): T? { - return when { - is T -> - else -> null - } -} - -interface Foo { - -} - -val Foo.asT: T? - inline get(): T? { - return when { - is T -> /*as T */ - else -> null - } - } - -class Bar { - constructor() /* primary */ { - super/*Any*/() - /* () */ - - } - - fun test(arg: Any) { - arg as T /*~> Unit */ - .useT(t = arg /*as T */) - } - - fun useT(t: T) { - } - -} diff --git a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.txt b/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.txt deleted file mode 100644 index ff627c5d41f..00000000000 --- a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.fir.txt +++ /dev/null @@ -1,81 +0,0 @@ -FILE fqName: fileName:/implicitCastToTypeParameter.kt - FUN name:test1 visibility:public modality:FINAL ($receiver:kotlin.Any) returnType:T of .test1? [inline] - TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] - $receiver: VALUE_PARAMETER name: type:kotlin.Any - BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun test1 (): T of .test1? [inline] declared in ' - WHEN type=T of .test1? origin=IF - BRANCH - if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of .test1 - GET_VAR ': kotlin.Any declared in .test1' type=kotlin.Any origin=null - then: GET_VAR ': kotlin.Any declared in .test1' type=T of .test1 origin=null - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CONST Null type=kotlin.Nothing? value=null - CLASS INTERFACE name:Foo modality:ABSTRACT visibility:public superTypes:[kotlin.Any] - $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Foo.Foo> - TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] - FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] - overridden: - public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any - VALUE_PARAMETER name:other index:0 type:kotlin.Any? - FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] - overridden: - public open fun hashCode (): kotlin.Int declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any - FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] - overridden: - public open fun toString (): kotlin.String declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any - PROPERTY name:asT visibility:public modality:FINAL [val] - FUN name: visibility:public modality:FINAL ($receiver:.Foo.>) returnType:T of .? [inline] - correspondingProperty: PROPERTY name:asT visibility:public modality:FINAL [val] - TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] - $receiver: VALUE_PARAMETER name: type:.Foo.> - BLOCK_BODY - RETURN type=kotlin.Nothing from='public final fun (): T of .? [inline] declared in ' - WHEN type=T of .? origin=IF - BRANCH - if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=T of . - GET_VAR ': .Foo.> declared in .' type=.Foo.> origin=null - then: TYPE_OP type=T of . origin=IMPLICIT_CAST typeOperand=T of . - GET_VAR ': .Foo.> declared in .' type=.Foo.> origin=null - BRANCH - if: CONST Boolean type=kotlin.Boolean value=true - then: CONST Null type=kotlin.Nothing? value=null - CLASS CLASS name:Bar modality:FINAL visibility:public superTypes:[kotlin.Any] - $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.Bar.Bar> - TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] - CONSTRUCTOR visibility:public <> () returnType:.Bar.Bar> [primary] - BLOCK_BODY - DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' - INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Bar modality:FINAL visibility:public superTypes:[kotlin.Any]' - FUN name:test visibility:public modality:FINAL <> ($this:.Bar.Bar>, arg:kotlin.Any) returnType:kotlin.Unit - $this: VALUE_PARAMETER name: type:.Bar.Bar> - VALUE_PARAMETER name:arg index:0 type:kotlin.Any - BLOCK_BODY - TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit - TYPE_OP type=T of .Bar origin=CAST typeOperand=T of .Bar - GET_VAR 'arg: kotlin.Any declared in .Bar.test' type=kotlin.Any origin=null - CALL 'public final fun useT (t: T of .Bar): kotlin.Unit declared in .Bar' type=kotlin.Unit origin=null - $this: GET_VAR ': .Bar.Bar> declared in .Bar.test' type=.Bar.Bar> origin=null - t: TYPE_OP type=T of .Bar origin=IMPLICIT_CAST typeOperand=T of .Bar - GET_VAR 'arg: kotlin.Any declared in .Bar.test' type=kotlin.Any origin=null - FUN name:useT visibility:public modality:FINAL <> ($this:.Bar.Bar>, t:T of .Bar) returnType:kotlin.Unit - $this: VALUE_PARAMETER name: type:.Bar.Bar> - VALUE_PARAMETER name:t index:0 type:T of .Bar - BLOCK_BODY - FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] - overridden: - public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any - VALUE_PARAMETER name:other index:0 type:kotlin.Any? - FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] - overridden: - public open fun hashCode (): kotlin.Int declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any - FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] - overridden: - public open fun toString (): kotlin.String declared in kotlin.Any - $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt b/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt index 5e9a09ea788..3c87e7b8455 100644 --- a/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt +++ b/compiler/testData/ir/irText/expressions/implicitCastToTypeParameter.kt @@ -1,3 +1,4 @@ +// FIR_IDENTICAL inline fun Any.test1(): T? = if (this is T) this else null diff --git a/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.kt.txt b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.kt.txt new file mode 100644 index 00000000000..f58c86deb73 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.kt.txt @@ -0,0 +1,39 @@ +interface SimpleTypeMarker { + +} + +class SimpleType : SimpleTypeMarker { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + fun foo(): String { + return "OK" + } + +} + +interface User { + fun SimpleTypeMarker.bar(): String { + require(value = is SimpleType) + return /*as SimpleType */.foo() + } + +} + +class UserImpl { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + fun SimpleTypeMarker.bar(): String { + require(value = is SimpleType) + return /*as SimpleType */.foo() + } + +} + diff --git a/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.txt b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.txt new file mode 100644 index 00000000000..43d658ac456 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.fir.txt @@ -0,0 +1,96 @@ +FILE fqName: fileName:/SimpleTypeMarker.kt + CLASS INTERFACE name:SimpleTypeMarker modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.SimpleTypeMarker + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:SimpleType modality:FINAL visibility:public superTypes:[.SimpleTypeMarker] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.SimpleType + CONSTRUCTOR visibility:public <> () returnType:.SimpleType [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:SimpleType modality:FINAL visibility:public superTypes:[.SimpleTypeMarker]' + FUN name:foo visibility:public modality:FINAL <> ($this:.SimpleType) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.SimpleType + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.String declared in .SimpleType' + CONST String type=kotlin.String value="OK" + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS INTERFACE name:User modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.User + FUN name:bar visibility:public modality:OPEN <> ($this:.User, $receiver:.SimpleTypeMarker) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.User + $receiver: VALUE_PARAMETER name: type:.SimpleTypeMarker + BLOCK_BODY + CALL 'public final fun require (value: kotlin.Boolean): kotlin.Unit [inline] declared in kotlin.PreconditionsKt' type=kotlin.Unit origin=null + value: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .User.bar' type=.SimpleTypeMarker origin=null + RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in .User' + CALL 'public final fun foo (): kotlin.String declared in .SimpleType' type=kotlin.String origin=null + $this: TYPE_OP type=.SimpleType origin=IMPLICIT_CAST typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .User.bar' type=.SimpleTypeMarker origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:UserImpl modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.UserImpl + CONSTRUCTOR visibility:public <> () returnType:.UserImpl [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:UserImpl modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN name:bar visibility:public modality:FINAL <> ($this:.UserImpl, $receiver:.SimpleTypeMarker) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.UserImpl + $receiver: VALUE_PARAMETER name: type:.SimpleTypeMarker + BLOCK_BODY + CALL 'public final fun require (value: kotlin.Boolean): kotlin.Unit [inline] declared in kotlin.PreconditionsKt' type=kotlin.Unit origin=null + value: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .UserImpl.bar' type=.SimpleTypeMarker origin=null + RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.String declared in .UserImpl' + CALL 'public final fun foo (): kotlin.String declared in .SimpleType' type=kotlin.String origin=null + $this: TYPE_OP type=.SimpleType origin=IMPLICIT_CAST typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .UserImpl.bar' type=.SimpleTypeMarker origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt new file mode 100644 index 00000000000..efce8922b20 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt @@ -0,0 +1,22 @@ +// WITH_RUNTIME + +interface SimpleTypeMarker + +class SimpleType : SimpleTypeMarker { + fun foo() = "OK" +} + +interface User { + fun SimpleTypeMarker.bar(): String { + require(this is SimpleType) + return this.foo() + } +} + +class UserImpl { + fun SimpleTypeMarker.bar(): String { + require(this is SimpleType) + return this.foo() + } +} + diff --git a/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt.txt b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt.txt new file mode 100644 index 00000000000..f58c86deb73 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt.txt @@ -0,0 +1,39 @@ +interface SimpleTypeMarker { + +} + +class SimpleType : SimpleTypeMarker { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + fun foo(): String { + return "OK" + } + +} + +interface User { + fun SimpleTypeMarker.bar(): String { + require(value = is SimpleType) + return /*as SimpleType */.foo() + } + +} + +class UserImpl { + constructor() /* primary */ { + super/*Any*/() + /* () */ + + } + + fun SimpleTypeMarker.bar(): String { + require(value = is SimpleType) + return /*as SimpleType */.foo() + } + +} + diff --git a/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.txt b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.txt new file mode 100644 index 00000000000..2a1b44bf546 --- /dev/null +++ b/compiler/testData/ir/irText/firProblems/SimpleTypeMarker.txt @@ -0,0 +1,96 @@ +FILE fqName: fileName:/SimpleTypeMarker.kt + CLASS INTERFACE name:SimpleTypeMarker modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.SimpleTypeMarker + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:SimpleType modality:FINAL visibility:public superTypes:[.SimpleTypeMarker] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.SimpleType + CONSTRUCTOR visibility:public <> () returnType:.SimpleType [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:SimpleType modality:FINAL visibility:public superTypes:[.SimpleTypeMarker]' + FUN name:foo visibility:public modality:FINAL <> ($this:.SimpleType) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.SimpleType + BLOCK_BODY + RETURN type=kotlin.Nothing from='public final fun foo (): kotlin.String declared in .SimpleType' + CONST String type=kotlin.String value="OK" + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [fake_override,operator] declared in .SimpleTypeMarker + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int [fake_override] declared in .SimpleTypeMarker + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String [fake_override] declared in .SimpleTypeMarker + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS INTERFACE name:User modality:ABSTRACT visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.User + FUN name:bar visibility:public modality:OPEN <> ($this:.User, $receiver:.SimpleTypeMarker) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.User + $receiver: VALUE_PARAMETER name: type:.SimpleTypeMarker + BLOCK_BODY + CALL 'public final fun require (value: kotlin.Boolean): kotlin.Unit [inline] declared in kotlin.PreconditionsKt' type=kotlin.Unit origin=null + value: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .User.bar' type=.SimpleTypeMarker origin=null + RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.String declared in .User' + CALL 'public final fun foo (): kotlin.String declared in .SimpleType' type=kotlin.String origin=null + $this: TYPE_OP type=.SimpleType origin=IMPLICIT_CAST typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .User.bar' type=.SimpleTypeMarker origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + CLASS CLASS name:UserImpl modality:FINAL visibility:public superTypes:[kotlin.Any] + $this: VALUE_PARAMETER INSTANCE_RECEIVER name: type:.UserImpl + CONSTRUCTOR visibility:public <> () returnType:.UserImpl [primary] + BLOCK_BODY + DELEGATING_CONSTRUCTOR_CALL 'public constructor () [primary] declared in kotlin.Any' + INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:UserImpl modality:FINAL visibility:public superTypes:[kotlin.Any]' + FUN name:bar visibility:public modality:FINAL <> ($this:.UserImpl, $receiver:.SimpleTypeMarker) returnType:kotlin.String + $this: VALUE_PARAMETER name: type:.UserImpl + $receiver: VALUE_PARAMETER name: type:.SimpleTypeMarker + BLOCK_BODY + CALL 'public final fun require (value: kotlin.Boolean): kotlin.Unit [inline] declared in kotlin.PreconditionsKt' type=kotlin.Unit origin=null + value: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .UserImpl.bar' type=.SimpleTypeMarker origin=null + RETURN type=kotlin.Nothing from='public final fun bar (): kotlin.String declared in .UserImpl' + CALL 'public final fun foo (): kotlin.String declared in .SimpleType' type=kotlin.String origin=null + $this: TYPE_OP type=.SimpleType origin=IMPLICIT_CAST typeOperand=.SimpleType + GET_VAR ': .SimpleTypeMarker declared in .UserImpl.bar' type=.SimpleTypeMarker origin=null + FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator] + overridden: + public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + VALUE_PARAMETER name:other index:0 type:kotlin.Any? + FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override] + overridden: + public open fun hashCode (): kotlin.Int declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any + FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override] + overridden: + public open fun toString (): kotlin.String declared in kotlin.Any + $this: VALUE_PARAMETER name: type:kotlin.Any diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java index 9a902176101..3f34ba8a394 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/ir/IrTextTestGenerated.java @@ -2176,6 +2176,12 @@ public class IrTextTestGenerated extends AbstractIrTextTest { runTest("compiler/testData/ir/irText/firProblems/SignatureClash.kt"); } + @Test + @TestMetadata("SimpleTypeMarker.kt") + public void testSimpleTypeMarker() throws Exception { + runTest("compiler/testData/ir/irText/firProblems/SimpleTypeMarker.kt"); + } + @Test @TestMetadata("SyntheticSetterType.kt") public void testSyntheticSetterType() throws Exception { diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/28.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/28.fir.kt index bc4e2af6ba6..788f77ff66f 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/28.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/neg/28.fir.kt @@ -5,7 +5,7 @@ // TESTCASE NUMBER: 1 fun > Inv.case_1() { if (this is MutableList<*>) { - & Inv & kotlin.collections.MutableList<*> & Inv")!>this - & Inv & kotlin.collections.MutableList<*> & Inv")!>this[0] = & Inv & kotlin.collections.MutableList<*> & Inv")!>this[1] + & Inv & Inv")!>this + & Inv & Inv")!>this[0] = & Inv & Inv")!>this[1] } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/11.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/11.fir.kt index f69f3a25738..578a5a62ed9 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/11.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/11.fir.kt @@ -54,16 +54,16 @@ fun case_3(a: Int?, b: Float?, c: Double?, d: Boolean?) { }.apply { ?")!>this if (this != null) { - & kotlin.Number & kotlin.Comparable<*>")!>this - & kotlin.Number & kotlin.Comparable<*>")!>this.equals(null) - & kotlin.Number & kotlin.Comparable<*>")!>this.propT - & kotlin.Number & kotlin.Comparable<*>")!>this.propAny - & kotlin.Number & kotlin.Comparable<*>")!>this.propNullableT - & kotlin.Number & kotlin.Comparable<*>")!>this.propNullableAny - & kotlin.Number & kotlin.Comparable<*>")!>this.funT() - & kotlin.Number & kotlin.Comparable<*>")!>this.funAny() - & kotlin.Number & kotlin.Comparable<*>")!>this.funNullableT() - & kotlin.Number & kotlin.Comparable<*>")!>this.funNullableAny() + & kotlin.Number? & kotlin.Comparable<*>?")!>this + & kotlin.Number? & kotlin.Comparable<*>?")!>this.equals(null) + & kotlin.Number? & kotlin.Comparable<*>?")!>this.propT + & kotlin.Number? & kotlin.Comparable<*>?")!>this.propAny + & kotlin.Number? & kotlin.Comparable<*>?")!>this.propNullableT + & kotlin.Number? & kotlin.Comparable<*>?")!>this.propNullableAny + & kotlin.Number? & kotlin.Comparable<*>?")!>this.funT() + & kotlin.Number? & kotlin.Comparable<*>?")!>this.funAny() + & kotlin.Number? & kotlin.Comparable<*>?")!>this.funNullableT() + & kotlin.Number? & kotlin.Comparable<*>?")!>this.funNullableAny() } }.let { ?")!>it @@ -97,16 +97,16 @@ fun case_4(a: Interface1?, b: Interface2?, c: Boolean) { x.apply { this if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() } } x.let { @@ -140,16 +140,16 @@ fun case_5(a: Interface1?, b: Interface2?, d: Boolean) { x.apply { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() } } x.let { @@ -182,20 +182,20 @@ fun case_6(a: Interface1?, b: Interface2, d: Boolean) { x.apply { this as Interface3 - this + this if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() - this.itest2() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() + this.itest2() } } x.let { @@ -232,20 +232,20 @@ fun case_7(a: Interface1?, b: Interface2?, d: Boolean) { x.apply { this as Interface3? - this + this if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() - this.itest2() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() + this.itest2() } } x.let { diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt index 1bebdfc9a4f..d4e97b770a2 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/12.fir.kt @@ -55,32 +55,32 @@ fun T?.case_2() { // TESTCASE NUMBER: 3 fun T.case_3() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() } } // TESTCASE NUMBER: 4 fun T?.case_4() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() } } @@ -88,17 +88,17 @@ fun T?.case_4() { fun T?.case_5() { if (this is Interface1) { if (this != null) { - this - this.equals(null) + this + this.equals(null) this.propT - this.propAny - this.propNullableT - this.propNullableAny + this.propAny + this.propNullableT + this.propNullableAny this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() equals(this) itest1() @@ -148,17 +148,17 @@ fun T?.case_5() { fun T?.case_6() { if (this is Interface1?) { if (this != null) { - this - this.equals(null) + this + this.equals(null) this.propT - this.propAny - this.propNullableT - this.propNullableAny + this.propAny + this.propNullableT + this.propNullableAny this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() equals(this) itest1() @@ -263,17 +263,17 @@ fun T.case_7() { fun T.case_8() { if (this != null) { if (this is Interface1?) { - this - this.equals(null) + this + this.equals(null) this.propT - this.propAny - this.propNullableT - this.propNullableAny + this.propAny + this.propNullableT + this.propNullableAny this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() equals(this) itest1() @@ -392,17 +392,17 @@ fun T.case_9() { // TESTCASE NUMBER: 10 fun T.case_10() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.toByte() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.toByte() equals(this) toByte() @@ -449,17 +449,17 @@ fun T.case_10() { fun T?.case_11() { if (this is Interface1?) { if (this != null) { - this - this.equals(null) + this + this.equals(null) this.propT - this.propAny - this.propNullableT - this.propNullableAny + this.propAny + this.propNullableT + this.propNullableAny this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() equals(this) itest1() @@ -506,18 +506,18 @@ fun T?.case_11() { // TESTCASE NUMBER: 12 fun T.case_12() where T : Number?, T: Interface1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() - this.toByte() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() + this.toByte() equals(this) itest1() @@ -648,17 +648,17 @@ fun T.case_13() where T : Out<*>?, T: Comparable { */ fun ?> T.case_14() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() equals(this) get() @@ -708,17 +708,17 @@ fun ?> T.case_14() { */ fun ?> T.case_15() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() equals(this) itest1() @@ -768,17 +768,17 @@ fun ?> T.case_15() { */ fun ?> T.case_16() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -828,17 +828,17 @@ fun ?> T.case_16() { */ fun ?> T.case_17() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -942,17 +942,17 @@ fun ?> T.case_18() { */ fun ?> T.case_19() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -1002,18 +1002,18 @@ fun ?> T.case_19() { */ fun T.case_20() where T: InterfaceWithTypeParameter1?, T: InterfaceWithTypeParameter2? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() - this.ip1test2() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() + this.ip1test2() equals(this) ip1test1() @@ -1067,19 +1067,19 @@ fun T.case_20() where T: InterfaceWithTypeParameter1?, T: InterfaceWit */ fun T.case_21() where T: InterfaceWithTypeParameter1?, T: InterfaceWithTypeParameter2?, T: InterfaceWithTypeParameter3? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() - this.ip1test2() - this.ip1test3() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() + this.ip1test2() + this.ip1test3() equals(this) ip1test1() @@ -1187,17 +1187,17 @@ fun >?> T.case // TESTCASE NUMBER: 23 fun >?> T.case_23() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -1243,17 +1243,17 @@ fun >?> T.case // TESTCASE NUMBER: 24 fun > InterfaceWithTypeParameter1?.case_24() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(this) ip1test1() @@ -1299,17 +1299,17 @@ fun > InterfaceWithTypeParameter1?.case // TESTCASE NUMBER: 25 fun > InterfaceWithTypeParameter1?.case_25() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(this) ip1test1() @@ -1355,17 +1355,17 @@ fun > InterfaceWithTypeParameter1?.cas // TESTCASE NUMBER: 26 fun > InterfaceWithTypeParameter1?.case_26() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1427,17 +1427,17 @@ fun > InterfaceWithTypeParameter1?.case // TESTCASE NUMBER: 27 fun > InterfaceWithTypeParameter1?.case_27() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1499,17 +1499,17 @@ fun > InterfaceWithTypeParameter1?.cas // TESTCASE NUMBER: 28 fun > InterfaceWithTypeParameter1?.case_28() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1571,17 +1571,17 @@ fun > InterfaceWithTypeParameter1?. // TESTCASE NUMBER: 29 fun > InterfaceWithTypeParameter1?.case_29() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1643,17 +1643,17 @@ fun > InterfaceWithTypeParameter1?. // TESTCASE NUMBER: 30 fun > InterfaceWithTypeParameter1?.case_30() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1715,17 +1715,17 @@ fun > InterfaceWithTypeParameter1?.c // TESTCASE NUMBER: 31 fun > InterfaceWithTypeParameter1?.case_31() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -1787,17 +1787,17 @@ fun > InterfaceWithTypeParameter1? // TESTCASE NUMBER: 32 fun Map?.case_32() { if (this != null) { - & kotlin.collections.Map")!>this - & kotlin.collections.Map")!>this.equals(null) - & kotlin.collections.Map")!>this.propT - & kotlin.collections.Map")!>this.propAny - & kotlin.collections.Map")!>this.propNullableT - & kotlin.collections.Map")!>this.propNullableAny - & kotlin.collections.Map")!>this.funT() - & kotlin.collections.Map")!>this.funAny() - & kotlin.collections.Map")!>this.funNullableT() - & kotlin.collections.Map")!>this.funNullableAny() - & kotlin.collections.Map")!>this.isEmpty() + & kotlin.collections.Map?")!>this + & kotlin.collections.Map?")!>this.equals(null) + & kotlin.collections.Map?")!>this.propT + & kotlin.collections.Map?")!>this.propAny + & kotlin.collections.Map?")!>this.propNullableT + & kotlin.collections.Map?")!>this.propNullableAny + & kotlin.collections.Map?")!>this.funT() + & kotlin.collections.Map?")!>this.funAny() + & kotlin.collections.Map?")!>this.funNullableT() + & kotlin.collections.Map?")!>this.funNullableAny() + & kotlin.collections.Map?")!>this.isEmpty() equals(null) @@ -1859,17 +1859,17 @@ fun Map?.case_32() { // TESTCASE NUMBER: 33 fun InterfaceWithFiveTypeParameters1?.case_33() { if (this != null) { - & InterfaceWithFiveTypeParameters1")!>this - & InterfaceWithFiveTypeParameters1")!>this.equals(null) - & InterfaceWithFiveTypeParameters1")!>this.propT - & InterfaceWithFiveTypeParameters1")!>this.propAny - & InterfaceWithFiveTypeParameters1")!>this.propNullableT - & InterfaceWithFiveTypeParameters1")!>this.propNullableAny - & InterfaceWithFiveTypeParameters1")!>this.funT() - & InterfaceWithFiveTypeParameters1")!>this.funAny() - & InterfaceWithFiveTypeParameters1")!>this.funNullableT() - & InterfaceWithFiveTypeParameters1")!>this.funNullableAny() - & InterfaceWithFiveTypeParameters1")!>this.itest() + & InterfaceWithFiveTypeParameters1?")!>this + & InterfaceWithFiveTypeParameters1?")!>this.equals(null) + & InterfaceWithFiveTypeParameters1?")!>this.propT + & InterfaceWithFiveTypeParameters1?")!>this.propAny + & InterfaceWithFiveTypeParameters1?")!>this.propNullableT + & InterfaceWithFiveTypeParameters1?")!>this.propNullableAny + & InterfaceWithFiveTypeParameters1?")!>this.funT() + & InterfaceWithFiveTypeParameters1?")!>this.funAny() + & InterfaceWithFiveTypeParameters1?")!>this.funNullableT() + & InterfaceWithFiveTypeParameters1?")!>this.funNullableAny() + & InterfaceWithFiveTypeParameters1?")!>this.itest() equals(null) @@ -1931,17 +1931,17 @@ fun InterfaceWithFiveTypeParameters1?.case_33() { // TESTCASE NUMBER: 34 fun InterfaceWithTypeParameter1?.case_34() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -2003,17 +2003,17 @@ fun InterfaceWithTypeParameter1?.case_34() { // TESTCASE NUMBER: 35 fun InterfaceWithTypeParameter1?.case_35() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -2075,17 +2075,17 @@ fun InterfaceWithTypeParameter1?.case_35() { // TESTCASE NUMBER: 36 fun InterfaceWithTypeParameter1?.case_36() { if (this != null) { - & InterfaceWithTypeParameter1")!>this - & InterfaceWithTypeParameter1")!>this.equals(null) - & InterfaceWithTypeParameter1")!>this.propT - & InterfaceWithTypeParameter1")!>this.propAny - & InterfaceWithTypeParameter1")!>this.propNullableT - & InterfaceWithTypeParameter1")!>this.propNullableAny - & InterfaceWithTypeParameter1")!>this.funT() - & InterfaceWithTypeParameter1")!>this.funAny() - & InterfaceWithTypeParameter1")!>this.funNullableT() - & InterfaceWithTypeParameter1")!>this.funNullableAny() - & InterfaceWithTypeParameter1")!>this.ip1test1() + & InterfaceWithTypeParameter1?")!>this + & InterfaceWithTypeParameter1?")!>this.equals(null) + & InterfaceWithTypeParameter1?")!>this.propT + & InterfaceWithTypeParameter1?")!>this.propAny + & InterfaceWithTypeParameter1?")!>this.propNullableT + & InterfaceWithTypeParameter1?")!>this.propNullableAny + & InterfaceWithTypeParameter1?")!>this.funT() + & InterfaceWithTypeParameter1?")!>this.funAny() + & InterfaceWithTypeParameter1?")!>this.funNullableT() + & InterfaceWithTypeParameter1?")!>this.funNullableAny() + & InterfaceWithTypeParameter1?")!>this.ip1test1() equals(null) @@ -2147,17 +2147,17 @@ fun InterfaceWithTypeParameter1?.case_36() { // TESTCASE NUMBER: 37 fun Map?.case_37() { if (this != null) { - & kotlin.collections.Map")!>this - & kotlin.collections.Map")!>this.equals(null) - & kotlin.collections.Map")!>this.propT - & kotlin.collections.Map")!>this.propAny - & kotlin.collections.Map")!>this.propNullableT - & kotlin.collections.Map")!>this.propNullableAny - & kotlin.collections.Map")!>this.funT() - & kotlin.collections.Map")!>this.funAny() - & kotlin.collections.Map")!>this.funNullableT() - & kotlin.collections.Map")!>this.funNullableAny() - & kotlin.collections.Map")!>this.isEmpty() + & kotlin.collections.Map?")!>this + & kotlin.collections.Map?")!>this.equals(null) + & kotlin.collections.Map?")!>this.propT + & kotlin.collections.Map?")!>this.propAny + & kotlin.collections.Map?")!>this.propNullableT + & kotlin.collections.Map?")!>this.propNullableAny + & kotlin.collections.Map?")!>this.funT() + & kotlin.collections.Map?")!>this.funAny() + & kotlin.collections.Map?")!>this.funNullableT() + & kotlin.collections.Map?")!>this.funNullableAny() + & kotlin.collections.Map?")!>this.isEmpty() equals(null) @@ -2219,17 +2219,17 @@ fun Map?.case_37() { // TESTCASE NUMBER: 38 fun Map<*, out T>?.case_38() { if (this != null) { - & kotlin.collections.Map<*, out T>")!>this - & kotlin.collections.Map<*, out T>")!>this.equals(null) - & kotlin.collections.Map<*, out T>")!>this.propT - & kotlin.collections.Map<*, out T>")!>this.propAny - & kotlin.collections.Map<*, out T>")!>this.propNullableT - & kotlin.collections.Map<*, out T>")!>this.propNullableAny - & kotlin.collections.Map<*, out T>")!>this.funT() - & kotlin.collections.Map<*, out T>")!>this.funAny() - & kotlin.collections.Map<*, out T>")!>this.funNullableT() - & kotlin.collections.Map<*, out T>")!>this.funNullableAny() - & kotlin.collections.Map<*, out T>")!>this.isEmpty() + & kotlin.collections.Map<*, out T>?")!>this + & kotlin.collections.Map<*, out T>?")!>this.equals(null) + & kotlin.collections.Map<*, out T>?")!>this.propT + & kotlin.collections.Map<*, out T>?")!>this.propAny + & kotlin.collections.Map<*, out T>?")!>this.propNullableT + & kotlin.collections.Map<*, out T>?")!>this.propNullableAny + & kotlin.collections.Map<*, out T>?")!>this.funT() + & kotlin.collections.Map<*, out T>?")!>this.funAny() + & kotlin.collections.Map<*, out T>?")!>this.funNullableT() + & kotlin.collections.Map<*, out T>?")!>this.funNullableAny() + & kotlin.collections.Map<*, out T>?")!>this.isEmpty() equals(null) @@ -2291,16 +2291,16 @@ fun Map<*, out T>?.case_38() { // TESTCASE NUMBER: 39 fun InterfaceWithTwoTypeParameters?.case_39() { if (this != null) { - & InterfaceWithTwoTypeParameters")!>this - & InterfaceWithTwoTypeParameters")!>this.equals(null) - & InterfaceWithTwoTypeParameters")!>this.propT - & InterfaceWithTwoTypeParameters")!>this.propAny - & InterfaceWithTwoTypeParameters")!>this.propNullableT - & InterfaceWithTwoTypeParameters")!>this.propNullableAny - & InterfaceWithTwoTypeParameters")!>this.funT() - & InterfaceWithTwoTypeParameters")!>this.funAny() - & InterfaceWithTwoTypeParameters")!>this.funNullableT() - & InterfaceWithTwoTypeParameters")!>this.funNullableAny() + & InterfaceWithTwoTypeParameters?")!>this + & InterfaceWithTwoTypeParameters?")!>this.equals(null) + & InterfaceWithTwoTypeParameters?")!>this.propT + & InterfaceWithTwoTypeParameters?")!>this.propAny + & InterfaceWithTwoTypeParameters?")!>this.propNullableT + & InterfaceWithTwoTypeParameters?")!>this.propNullableAny + & InterfaceWithTwoTypeParameters?")!>this.funT() + & InterfaceWithTwoTypeParameters?")!>this.funAny() + & InterfaceWithTwoTypeParameters?")!>this.funNullableT() + & InterfaceWithTwoTypeParameters?")!>this.funNullableAny() equals(null) @@ -2358,16 +2358,16 @@ fun InterfaceWithTwoTypeParameters?.case_39() { // TESTCASE NUMBER: 40 fun InterfaceWithTwoTypeParameters?.case_40() { if (this != null) { - & InterfaceWithTwoTypeParameters")!>this - & InterfaceWithTwoTypeParameters")!>this.equals(null) - & InterfaceWithTwoTypeParameters")!>this.propT - & InterfaceWithTwoTypeParameters")!>this.propAny - & InterfaceWithTwoTypeParameters")!>this.propNullableT - & InterfaceWithTwoTypeParameters")!>this.propNullableAny - & InterfaceWithTwoTypeParameters")!>this.funT() - & InterfaceWithTwoTypeParameters")!>this.funAny() - & InterfaceWithTwoTypeParameters")!>this.funNullableT() - & InterfaceWithTwoTypeParameters")!>this.funNullableAny() + & InterfaceWithTwoTypeParameters?")!>this + & InterfaceWithTwoTypeParameters?")!>this.equals(null) + & InterfaceWithTwoTypeParameters?")!>this.propT + & InterfaceWithTwoTypeParameters?")!>this.propAny + & InterfaceWithTwoTypeParameters?")!>this.propNullableT + & InterfaceWithTwoTypeParameters?")!>this.propNullableAny + & InterfaceWithTwoTypeParameters?")!>this.funT() + & InterfaceWithTwoTypeParameters?")!>this.funAny() + & InterfaceWithTwoTypeParameters?")!>this.funNullableT() + & InterfaceWithTwoTypeParameters?")!>this.funNullableAny() equals(null) @@ -2425,17 +2425,17 @@ fun InterfaceWithTwoTypeParameters?.case_40() { // TESTCASE NUMBER: 41 fun Map?.case_41() { if (this != null) { - & kotlin.collections.Map")!>this - & kotlin.collections.Map")!>this.equals(null) - & kotlin.collections.Map")!>this.propT - & kotlin.collections.Map")!>this.propAny - & kotlin.collections.Map")!>this.propNullableT - & kotlin.collections.Map")!>this.propNullableAny - & kotlin.collections.Map")!>this.funT() - & kotlin.collections.Map")!>this.funAny() - & kotlin.collections.Map")!>this.funNullableT() - & kotlin.collections.Map")!>this.funNullableAny() - & kotlin.collections.Map")!>this.isEmpty() + & kotlin.collections.Map?")!>this + & kotlin.collections.Map?")!>this.equals(null) + & kotlin.collections.Map?")!>this.propT + & kotlin.collections.Map?")!>this.propAny + & kotlin.collections.Map?")!>this.propNullableT + & kotlin.collections.Map?")!>this.propNullableAny + & kotlin.collections.Map?")!>this.funT() + & kotlin.collections.Map?")!>this.funAny() + & kotlin.collections.Map?")!>this.funNullableT() + & kotlin.collections.Map?")!>this.funNullableAny() + & kotlin.collections.Map?")!>this.isEmpty() equals(null) @@ -2497,17 +2497,17 @@ fun Map?.case_41() { // TESTCASE NUMBER: 42 fun Map?.case_42() { if (this != null) { - & kotlin.collections.Map")!>this - & kotlin.collections.Map")!>this.equals(null) - & kotlin.collections.Map")!>this.propT - & kotlin.collections.Map")!>this.propAny - & kotlin.collections.Map")!>this.propNullableT - & kotlin.collections.Map")!>this.propNullableAny - & kotlin.collections.Map")!>this.funT() - & kotlin.collections.Map")!>this.funAny() - & kotlin.collections.Map")!>this.funNullableT() - & kotlin.collections.Map")!>this.funNullableAny() - & kotlin.collections.Map")!>this.isEmpty() + & kotlin.collections.Map?")!>this + & kotlin.collections.Map?")!>this.equals(null) + & kotlin.collections.Map?")!>this.propT + & kotlin.collections.Map?")!>this.propAny + & kotlin.collections.Map?")!>this.propNullableT + & kotlin.collections.Map?")!>this.propNullableAny + & kotlin.collections.Map?")!>this.funT() + & kotlin.collections.Map?")!>this.funAny() + & kotlin.collections.Map?")!>this.funNullableT() + & kotlin.collections.Map?")!>this.funNullableAny() + & kotlin.collections.Map?")!>this.isEmpty() equals(null) @@ -2569,17 +2569,17 @@ fun Map?.case_42() { // TESTCASE NUMBER: 43 fun Map?.case_43() { if (this != null) { - & kotlin.collections.Map")!>this - & kotlin.collections.Map")!>this.equals(null) - & kotlin.collections.Map")!>this.propT - & kotlin.collections.Map")!>this.propAny - & kotlin.collections.Map")!>this.propNullableT - & kotlin.collections.Map")!>this.propNullableAny - & kotlin.collections.Map")!>this.funT() - & kotlin.collections.Map")!>this.funAny() - & kotlin.collections.Map")!>this.funNullableT() - & kotlin.collections.Map")!>this.funNullableAny() - & kotlin.collections.Map")!>this.isEmpty() + & kotlin.collections.Map?")!>this + & kotlin.collections.Map?")!>this.equals(null) + & kotlin.collections.Map?")!>this.propT + & kotlin.collections.Map?")!>this.propAny + & kotlin.collections.Map?")!>this.propNullableT + & kotlin.collections.Map?")!>this.propNullableAny + & kotlin.collections.Map?")!>this.funT() + & kotlin.collections.Map?")!>this.funAny() + & kotlin.collections.Map?")!>this.funNullableT() + & kotlin.collections.Map?")!>this.funNullableAny() + & kotlin.collections.Map?")!>this.isEmpty() equals(null) @@ -2641,17 +2641,17 @@ fun Map?.case_43() { // TESTCASE NUMBER: 44 fun InterfaceWithFiveTypeParameters1?.case_44() { if (this != null) { - & InterfaceWithFiveTypeParameters1")!>this - & InterfaceWithFiveTypeParameters1")!>this.equals(null) - & InterfaceWithFiveTypeParameters1")!>this.propT - & InterfaceWithFiveTypeParameters1")!>this.propAny - & InterfaceWithFiveTypeParameters1")!>this.propNullableT - & InterfaceWithFiveTypeParameters1")!>this.propNullableAny - & InterfaceWithFiveTypeParameters1")!>this.funT() - & InterfaceWithFiveTypeParameters1")!>this.funAny() - & InterfaceWithFiveTypeParameters1")!>this.funNullableT() - & InterfaceWithFiveTypeParameters1")!>this.funNullableAny() - & InterfaceWithFiveTypeParameters1")!>this.itest() + & InterfaceWithFiveTypeParameters1?")!>this + & InterfaceWithFiveTypeParameters1?")!>this.equals(null) + & InterfaceWithFiveTypeParameters1?")!>this.propT + & InterfaceWithFiveTypeParameters1?")!>this.propAny + & InterfaceWithFiveTypeParameters1?")!>this.propNullableT + & InterfaceWithFiveTypeParameters1?")!>this.propNullableAny + & InterfaceWithFiveTypeParameters1?")!>this.funT() + & InterfaceWithFiveTypeParameters1?")!>this.funAny() + & InterfaceWithFiveTypeParameters1?")!>this.funNullableT() + & InterfaceWithFiveTypeParameters1?")!>this.funNullableAny() + & InterfaceWithFiveTypeParameters1?")!>this.itest() equals(null) @@ -2713,18 +2713,18 @@ fun InterfaceWithFiveTypeParameters1?.case_44() { // TESTCASE NUMBER: 45 fun T.case_45() where T : Number?, T: Comparable? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.toByte() - this.compareTo(this) + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.toByte() + this.compareTo(this) equals(this) toByte() @@ -2774,19 +2774,19 @@ fun T.case_45() where T : Number?, T: Comparable? { // TESTCASE NUMBER: 46 fun T.case_46() where T : CharSequence?, T: Comparable?, T: Iterable<*>? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.compareTo(this) - this.get(0) - this.iterator() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.compareTo(this) + this.get(0) + this.iterator() equals(this) compareTo(this) @@ -2844,18 +2844,18 @@ fun T.case_46() where T : CharSequence?, T: Comparable?, T: Iterable<*>? */ fun T?.case_47() where T : Inv, T: Comparable<*>?, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -2900,7 +2900,7 @@ fun T?.case_47() where T : Inv, T: Comparable<*>?, T: InterfaceWithTypePa it.ip1test1() } - this.compareTo(return) + this.compareTo(return) compareTo(return) apply { @@ -2921,18 +2921,18 @@ fun T?.case_47() where T : Inv, T: Comparable<*>?, T: InterfaceWithTypePa */ fun T?.case_48() where T : Inv, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -2986,18 +2986,18 @@ fun T?.case_48() where T : Inv, T: InterfaceWithTypeParameter1? */ fun T?.case_49() where T : Inv, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3051,18 +3051,18 @@ fun T?.case_49() where T : Inv, T: InterfaceWithTypeParameter1? */ fun T?.case_50() where T : Inv, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3116,18 +3116,18 @@ fun T?.case_50() where T : Inv, T: InterfaceWithTypeParameter1 */ fun T?.case_51() where T : Inv, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3177,18 +3177,18 @@ fun T?.case_51() where T : Inv, T: InterfaceWithTypeParameter1? { // TESTCASE NUMBER: 52 fun T?.case_52() where T : Inv, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3242,18 +3242,18 @@ fun T?.case_52() where T : Inv, T: InterfaceWithTypeParameter1? { */ fun T?.case_53() where T : Inv, T: InterfaceWithTypeParameter1<*>? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3307,18 +3307,18 @@ fun T?.case_53() where T : Inv, T: InterfaceWithTypeParameter1<*>? { */ fun T?.case_54() where T : Inv<*>, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3368,18 +3368,18 @@ fun T?.case_54() where T : Inv<*>, T: InterfaceWithTypeParameter1? { // TESTCASE NUMBER: 55 fun T?.case_55() where T : Inv<*>, T: InterfaceWithTypeParameter1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.get() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.get() + this.ip1test1() equals(this) get() @@ -3429,18 +3429,18 @@ fun T?.case_55() where T : Inv<*>, T: InterfaceWithTypeParameter1? { // TESTCASE NUMBER: 56 fun T.case_56() where T : Number?, T: Interface1? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest() - this.toByte() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest() + this.toByte() equals(this) itest() @@ -3571,17 +3571,17 @@ fun T.case_57() where T : Out<*>?, T: Comparable { // TESTCASE NUMBER: 58 fun >>>>>>>>>?> T.case_59() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -3631,19 +3631,19 @@ fun T.case_59() where T: InterfaceWithFiveTypeParameters1?, T: InterfaceWithFiveTypeParameters2?, T: InterfaceWithFiveTypeParameters3? { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.itest1() - this.itest2() - this.itest3() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.itest1() + this.itest2() + this.itest3() equals(this) itest1() @@ -3701,17 +3701,17 @@ fun T.case_59() where T: InterfaceWithFiveTypeParameters1?> T.case_60() { if (this != null) { - this - this.equals(null) - this.propT - this.propAny - this.propNullableT - this.propNullableAny - this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() - this.ip1test1() + this + this.equals(null) + this.propT + this.propAny + this.propNullableT + this.propNullableAny + this.funT() + this.funAny() + this.funNullableT() + this.funNullableAny() + this.ip1test1() equals(this) ip1test1() @@ -3766,10 +3766,10 @@ class Case61_3: InterfaceWithTypeParameter1, Case61_1, Case61_2 { fun T.case_61() where T : InterfaceWithTypeParameter1?, T: Case61_3?, T: Case61_1?, T: Case61_2? { if (this != null) { - this.test1() - this.test2() - this.ip1test1() - this.test4() + this.test1() + this.test2() + this.ip1test1() + this.test4() test1() test2() @@ -3799,8 +3799,8 @@ fun T.case_61() where T : InterfaceWithTypeParameter1?, T: Case61_3?, // TESTCASE NUMBER: 62 fun Nothing?.case_62() { if (this != null) { - this - this.hashCode() + this + this.hashCode() hashCode() apply { @@ -3840,8 +3840,8 @@ fun Nothing.case_63() { */ fun T.case_64() { if (this != null) { - this - this.hashCode() + this + this.hashCode() hashCode() apply { @@ -3865,16 +3865,16 @@ fun T.case_65() { if (this is Interface1?) { if (this is Interface2?) { if (this != null) { - this - this.equals(null) + this + this.equals(null) this.propT - this.propAny - this.propNullableT - this.propNullableAny + this.propAny + this.propNullableT + this.propNullableAny this.funT() - this.funAny() - this.funNullableT() - this.funNullableAny() + this.funAny() + this.funNullableT() + this.funNullableAny() apply { this this.equals(null) diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/14.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/14.fir.kt index 9d62f586de0..da8354f4c68 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/14.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/14.fir.kt @@ -14,8 +14,8 @@ fun case_1(vararg x: Int?) { fun case_2(vararg x: Int?) { x[0].apply { if (this != null) { - this - this.inv() + this + this.inv() } } @@ -39,8 +39,8 @@ fun case_3(vararg x: T?) { fun case_4(vararg x: T?) { x[0].apply { if (this != null) { - this - this.toByte() + this + this.toByte() } } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/44.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/44.fir.kt index 59ab61c5657..7535afb3fb3 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/44.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/44.fir.kt @@ -10,8 +10,8 @@ fun Int?.case_1() { val x = this if (x != null) { - this - this.inv() + this + this.inv() } } @@ -48,6 +48,6 @@ fun Int?.case_3() { fun Int?.case_4() { val x = this x!! - this - this.inv() + this + this.inv() } diff --git a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/50.fir.kt b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/50.fir.kt index 31942a1c5bf..033dd38d297 100644 --- a/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/50.fir.kt +++ b/compiler/tests-spec/testData/diagnostics/notLinked/dfa/pos/50.fir.kt @@ -5,9 +5,9 @@ // TESTCASE NUMBER: 1 fun Any.case_1() { if (this is Inv<*>) { - & Inv<*>")!>this.test() - & Inv<*>")!>this.prop_4 - & Inv<*>")!>this.prop_4.inv() + & kotlin.Any")!>this.test() + & kotlin.Any")!>this.prop_4 + & kotlin.Any")!>this.prop_4.inv() prop_4 prop_4.inv() } @@ -16,9 +16,9 @@ fun Any.case_1() { // TESTCASE NUMBER: 2 fun Any.case_2() { if (this is ClassWithSixTypeParameters<*, *, *, *, *, *>) { - & ClassWithSixTypeParameters<*, *, *, *, *, *>")!>this.test() - & ClassWithSixTypeParameters<*, *, *, *, *, *>")!>this.x - & ClassWithSixTypeParameters<*, *, *, *, *, *>")!>this.y + & kotlin.Any")!>this.test() + & kotlin.Any")!>this.x + & kotlin.Any")!>this.y x y } @@ -27,9 +27,9 @@ fun Any.case_2() { // TESTCASE NUMBER: 3 fun T.case_3() { if (this is Inv<*>) { - & T!! & Inv<*> & T!!")!>this.test() - & T!! & Inv<*> & T!!")!>this.prop_4 - & T!! & Inv<*> & T!!")!>this.prop_4.inv() + & T!! & T")!>this.test() + & T!! & T")!>this.prop_4 + & T!! & T")!>this.prop_4.inv() prop_4 prop_4.inv() } @@ -38,9 +38,9 @@ fun T.case_3() { // TESTCASE NUMBER: 4 fun T?.case_4() { if (this is ClassWithSixTypeParameters<*, *, *, *, *, *>) { - & T?!! & ClassWithSixTypeParameters<*, *, *, *, *, *> & T?!!")!>this.test() - & T?!! & ClassWithSixTypeParameters<*, *, *, *, *, *> & T?!!")!>this.x - & T?!! & ClassWithSixTypeParameters<*, *, *, *, *, *> & T?!!")!>this.y + & T?!! & T?")!>this.test() + & T?!! & T?")!>this.x + & T?!! & T?")!>this.y x y } @@ -49,11 +49,11 @@ fun T?.case_4() { // TESTCASE NUMBER: 5 fun ClassWithSixTypeParameters.case_5() { if (this is InterfaceWithFiveTypeParameters1<*, *, *, *, *>) { - & ClassWithSixTypeParameters & InterfaceWithFiveTypeParameters1<*, *, *, *, *> & ClassWithSixTypeParameters")!>this.itest1() + & ClassWithSixTypeParameters & ClassWithSixTypeParameters")!>this.itest1() itest1() - & ClassWithSixTypeParameters & InterfaceWithFiveTypeParameters1<*, *, *, *, *> & ClassWithSixTypeParameters")!>this.test() - & ClassWithSixTypeParameters & InterfaceWithFiveTypeParameters1<*, *, *, *, *> & ClassWithSixTypeParameters")!>this.x - & ClassWithSixTypeParameters & InterfaceWithFiveTypeParameters1<*, *, *, *, *> & ClassWithSixTypeParameters")!>this.y + & ClassWithSixTypeParameters & ClassWithSixTypeParameters")!>this.test() + & ClassWithSixTypeParameters & ClassWithSixTypeParameters")!>this.x + & ClassWithSixTypeParameters & ClassWithSixTypeParameters")!>this.y x y } @@ -98,8 +98,8 @@ fun T.case_8() { */ fun T.case_9() { if (this is String) { - this - this.length + this + this.length length } }