FIR2IR: Fix case of using context receivers in property initializers
This commit is contained in:
+7
-6
@@ -123,12 +123,6 @@ internal class ClassMemberGenerator(
|
|||||||
}
|
}
|
||||||
body.statements += irDelegatingConstructorCall
|
body.statements += irDelegatingConstructorCall
|
||||||
}
|
}
|
||||||
if (delegatedConstructor?.isThis == false) {
|
|
||||||
val instanceInitializerCall = IrInstanceInitializerCallImpl(
|
|
||||||
startOffset, endOffset, irClass.symbol, irFunction.constructedClassType
|
|
||||||
)
|
|
||||||
body.statements += instanceInitializerCall
|
|
||||||
}
|
|
||||||
|
|
||||||
if (containingClass is FirRegularClass && containingClass.contextReceivers.isNotEmpty()) {
|
if (containingClass is FirRegularClass && containingClass.contextReceivers.isNotEmpty()) {
|
||||||
val contextReceiverFields =
|
val contextReceiverFields =
|
||||||
@@ -158,6 +152,13 @@ internal class ClassMemberGenerator(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (delegatedConstructor?.isThis == false) {
|
||||||
|
val instanceInitializerCall = IrInstanceInitializerCallImpl(
|
||||||
|
startOffset, endOffset, irClass.symbol, irFunction.constructedClassType
|
||||||
|
)
|
||||||
|
body.statements += instanceInitializerCall
|
||||||
|
}
|
||||||
|
|
||||||
val regularBody = firFunction.body?.let { visitor.convertToIrBlockBody(it) }
|
val regularBody = firFunction.body?.let { visitor.convertToIrBlockBody(it) }
|
||||||
if (regularBody != null) {
|
if (regularBody != null) {
|
||||||
body.statements += regularBody.statements
|
body.statements += regularBody.statements
|
||||||
|
|||||||
+6
@@ -16788,6 +16788,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/unaryOperators.kt");
|
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/unaryOperators.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("useContextReceiverInPropertyInitializer.kt")
|
||||||
|
public void testUseContextReceiverInPropertyInitializer() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/useContextReceiverInPropertyInitializer.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useFromAnotherModule.kt")
|
@TestMetadata("useFromAnotherModule.kt")
|
||||||
public void testUseFromAnotherModule() throws Exception {
|
public void testUseFromAnotherModule() throws Exception {
|
||||||
|
|||||||
-1
@@ -1,6 +1,5 @@
|
|||||||
// !LANGUAGE: +ContextReceivers
|
// !LANGUAGE: +ContextReceivers
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// FIR status: context receivers aren't yet supported
|
// FIR status: context receivers aren't yet supported
|
||||||
|
|
||||||
class O(val o: String)
|
class O(val o: String)
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
// !LANGUAGE: +ContextReceivers
|
// !LANGUAGE: +ContextReceivers
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// FIR status: context receivers aren't yet supported
|
// FIR status: context receivers aren't yet supported
|
||||||
|
|
||||||
class A {
|
class A {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
// !LANGUAGE: +ContextReceivers
|
// !LANGUAGE: +ContextReceivers
|
||||||
// TARGET_BACKEND: JVM_IR
|
// TARGET_BACKEND: JVM_IR
|
||||||
// IGNORE_BACKEND_FIR: JVM_IR
|
|
||||||
// FIR status: context receivers aren't yet supported
|
// FIR status: context receivers aren't yet supported
|
||||||
|
|
||||||
// MODULE: lib
|
// MODULE: lib
|
||||||
|
|||||||
+19
@@ -0,0 +1,19 @@
|
|||||||
|
// !LANGUAGE: +ContextReceivers
|
||||||
|
// TARGET_BACKEND: JVM_IR
|
||||||
|
|
||||||
|
class Components(val x: String)
|
||||||
|
|
||||||
|
context(Components)
|
||||||
|
abstract class A(val y: String) {
|
||||||
|
val w: String = x
|
||||||
|
fun foo(): String = w + y
|
||||||
|
}
|
||||||
|
|
||||||
|
context(Components)
|
||||||
|
class B(y: String) : A(y)
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
return with(Components("O")) {
|
||||||
|
B("K").foo()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -37,10 +37,10 @@ FILE fqName:<root> fileName:/class.kt
|
|||||||
VALUE_PARAMETER name:arg index:1 type:kotlin.Any
|
VALUE_PARAMETER name:arg index:1 type:kotlin.Any
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Outer visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.Outer visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.Inner declared in <root>.Inner' type=<root>.Inner origin=null
|
receiver: GET_VAR '<this>: <root>.Inner declared in <root>.Inner' type=<root>.Inner origin=null
|
||||||
value: GET_VAR '_context_receiver_0: <root>.Outer declared in <root>.Inner.<init>' type=<root>.Outer origin=null
|
value: GET_VAR '_context_receiver_0: <root>.Outer declared in <root>.Inner.<init>' type=<root>.Outer origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Inner modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
FUN name:bar visibility:public modality:FINAL <> ($this:<root>.Inner) returnType:kotlin.Int
|
FUN name:bar visibility:public modality:FINAL <> ($this:<root>.Inner) returnType:kotlin.Int
|
||||||
$this: VALUE_PARAMETER name:<this> type:<root>.Inner
|
$this: VALUE_PARAMETER name:<this> type:<root>.Inner
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
|
|||||||
@@ -15,9 +15,9 @@ class Inner {
|
|||||||
private /* final field */ val contextReceiverField0: Outer
|
private /* final field */ val contextReceiverField0: Outer
|
||||||
constructor(_context_receiver_0: Outer, arg: Any) /* primary */ {
|
constructor(_context_receiver_0: Outer, arg: Any) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
fun bar(): Int {
|
fun bar(): Int {
|
||||||
|
|||||||
+1
-1
@@ -38,10 +38,10 @@ FILE fqName:<root> fileName:/contextualPrimaryConstructorWithParams.kt
|
|||||||
VALUE_PARAMETER name:k index:1 type:kotlin.String
|
VALUE_PARAMETER name:k index:1 type:kotlin.String
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:OK modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.O visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.O visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.OK declared in <root>.OK' type=<root>.OK origin=null
|
receiver: GET_VAR '<this>: <root>.OK declared in <root>.OK' type=<root>.OK origin=null
|
||||||
value: GET_VAR '_context_receiver_0: <root>.O declared in <root>.OK.<init>' type=<root>.O origin=null
|
value: GET_VAR '_context_receiver_0: <root>.O declared in <root>.OK.<init>' type=<root>.O origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:OK modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
PROPERTY name:k visibility:public modality:FINAL [val]
|
PROPERTY name:k visibility:public modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:k type:kotlin.String visibility:private [final]
|
FIELD PROPERTY_BACKING_FIELD name:k type:kotlin.String visibility:private [final]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
|
|||||||
+1
-1
@@ -15,9 +15,9 @@ class OK {
|
|||||||
private /* final field */ val contextReceiverField0: O
|
private /* final field */ val contextReceiverField0: O
|
||||||
constructor(_context_receiver_0: O, k: String) /* primary */ {
|
constructor(_context_receiver_0: O, k: String) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
val k: String
|
val k: String
|
||||||
|
|||||||
Vendored
+1
-1
@@ -88,10 +88,10 @@ FILE fqName:<root> fileName:/delegatedPropertiesOperators.kt
|
|||||||
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
|
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.Int
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.Int visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result' type=<root>.Result origin=null
|
receiver: GET_VAR '<this>: <root>.Result declared in <root>.Result' type=<root>.Result origin=null
|
||||||
value: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
|
value: GET_VAR '_context_receiver_0: kotlin.Int declared in <root>.Result.<init>' type=kotlin.Int origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:Result modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
PROPERTY name:s visibility:public modality:FINAL [delegated,var]
|
PROPERTY name:s visibility:public modality:FINAL [delegated,var]
|
||||||
FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]
|
FIELD PROPERTY_DELEGATE name:s$delegate type:<root>.Delegate visibility:private [final]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
|
|||||||
Vendored
+1
-1
@@ -31,9 +31,9 @@ class Result {
|
|||||||
private /* final field */ val contextReceiverField0: Int
|
private /* final field */ val contextReceiverField0: Int
|
||||||
constructor(_context_receiver_0: Int) /* primary */ {
|
constructor(_context_receiver_0: Int) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var s: String /* by */
|
var s: String /* by */
|
||||||
|
|||||||
+2
-2
@@ -7,10 +7,10 @@ FILE fqName:<root> fileName:/genericOuterClass.kt
|
|||||||
VALUE_PARAMETER name:_context_receiver_0 index:0 type:T of <root>.A
|
VALUE_PARAMETER name:_context_receiver_0 index:0 type:T of <root>.A
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:T of <root>.A visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:T of <root>.A visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.A<T of <root>.A> declared in <root>.A' type=<root>.A<T of <root>.A> origin=null
|
receiver: GET_VAR '<this>: <root>.A<T of <root>.A> declared in <root>.A' type=<root>.A<T of <root>.A> origin=null
|
||||||
value: GET_VAR '_context_receiver_0: T of <root>.A declared in <root>.A.<init>' type=T of <root>.A origin=null
|
value: GET_VAR '_context_receiver_0: T of <root>.A declared in <root>.A.<init>' type=T of <root>.A origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
@@ -32,10 +32,10 @@ FILE fqName:<root> fileName:/genericOuterClass.kt
|
|||||||
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.collections.Collection<P of <root>.B>
|
VALUE_PARAMETER name:_context_receiver_0 index:0 type:kotlin.collections.Collection<P of <root>.B>
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.collections.Collection<P of <root>.B> visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:kotlin.collections.Collection<P of <root>.B> visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.B<P of <root>.B> declared in <root>.B' type=<root>.B<P of <root>.B> origin=null
|
receiver: GET_VAR '<this>: <root>.B<P of <root>.B> declared in <root>.B' type=<root>.B<P of <root>.B> origin=null
|
||||||
value: GET_VAR '_context_receiver_0: kotlin.collections.Collection<P of <root>.B> declared in <root>.B.<init>' type=kotlin.collections.Collection<P of <root>.B> origin=null
|
value: GET_VAR '_context_receiver_0: kotlin.collections.Collection<P of <root>.B> declared in <root>.B.<init>' type=kotlin.collections.Collection<P of <root>.B> origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[kotlin.Any]'
|
||||||
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
|
||||||
overridden:
|
overridden:
|
||||||
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
public open fun equals (other: kotlin.Any?): kotlin.Boolean [operator] declared in kotlin.Any
|
||||||
|
|||||||
+2
-2
@@ -2,9 +2,9 @@ class A<T : Any?> {
|
|||||||
private /* final field */ val contextReceiverField0: T
|
private /* final field */ val contextReceiverField0: T
|
||||||
constructor(_context_receiver_0: T) /* primary */ {
|
constructor(_context_receiver_0: T) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -13,9 +13,9 @@ class B<P : Any?> {
|
|||||||
private /* final field */ val contextReceiverField0: Collection<P>
|
private /* final field */ val contextReceiverField0: Collection<P>
|
||||||
constructor(_context_receiver_0: Collection<P>) /* primary */ {
|
constructor(_context_receiver_0: Collection<P>) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -197,10 +197,10 @@ FILE fqName:<root> fileName:/iteratorOperator.kt
|
|||||||
VALUE_PARAMETER name:counter index:1 type:<root>.Counter
|
VALUE_PARAMETER name:counter index:1 type:<root>.Counter
|
||||||
BLOCK_BODY
|
BLOCK_BODY
|
||||||
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () [primary] declared in kotlin.Any'
|
||||||
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]'
|
|
||||||
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]' type=kotlin.Unit origin=null
|
SET_FIELD 'FIELD FIELD_FOR_CLASS_CONTEXT_RECEIVER name:contextReceiverField0 type:<root>.CounterConfig visibility:private [final]' type=kotlin.Unit origin=null
|
||||||
receiver: GET_VAR '<this>: <root>.CounterIterator declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
|
receiver: GET_VAR '<this>: <root>.CounterIterator declared in <root>.CounterIterator' type=<root>.CounterIterator origin=null
|
||||||
value: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
|
value: GET_VAR '_context_receiver_0: <root>.CounterConfig declared in <root>.CounterIterator.<init>' type=<root>.CounterConfig origin=null
|
||||||
|
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:CounterIterator modality:FINAL visibility:public superTypes:[kotlin.collections.Iterator<kotlin.Int>]'
|
||||||
PROPERTY name:counter visibility:private modality:FINAL [val]
|
PROPERTY name:counter visibility:private modality:FINAL [val]
|
||||||
FIELD PROPERTY_BACKING_FIELD name:counter type:<root>.Counter visibility:private [final]
|
FIELD PROPERTY_BACKING_FIELD name:counter type:<root>.Counter visibility:private [final]
|
||||||
EXPRESSION_BODY
|
EXPRESSION_BODY
|
||||||
|
|||||||
+1
-1
@@ -89,9 +89,9 @@ class CounterIterator : Iterator<Int> {
|
|||||||
private /* final field */ val contextReceiverField0: CounterConfig
|
private /* final field */ val contextReceiverField0: CounterConfig
|
||||||
constructor(_context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
|
constructor(_context_receiver_0: CounterConfig, counter: Counter) /* primary */ {
|
||||||
super/*Any*/()
|
super/*Any*/()
|
||||||
|
<this>.#contextReceiverField0 = _context_receiver_0
|
||||||
/* <init>() */
|
/* <init>() */
|
||||||
|
|
||||||
<this>.#contextReceiverField0 = _context_receiver_0
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private val counter: Counter
|
private val counter: Counter
|
||||||
|
|||||||
+6
@@ -16788,6 +16788,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/unaryOperators.kt");
|
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/unaryOperators.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("useContextReceiverInPropertyInitializer.kt")
|
||||||
|
public void testUseContextReceiverInPropertyInitializer() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/extensionFunctions/contextReceivers/useContextReceiverInPropertyInitializer.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("useFromAnotherModule.kt")
|
@TestMetadata("useFromAnotherModule.kt")
|
||||||
public void testUseFromAnotherModule() throws Exception {
|
public void testUseFromAnotherModule() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user