e89047d2cc
Such references require proper scope so that local symbols are bound.
Example:
```
fun <T> outer() {
abstract class ALocal<S : T> {
abstract fun bar()
}
class Local<S : T> : ALocal<S>() {
override fun bar() {}
}
}
```
Here local classes have type parameters with upper bounds depending on
function type parameters, and members overriding members in other local
classes.
221 lines
15 KiB
Plaintext
Vendored
221 lines
15 KiB
Plaintext
Vendored
FILE fqName:<root> fileName:/constructor.kt
|
|
CLASS CLASS name:Test1 modality:FINAL visibility:public flags:
|
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test1<T1, T2> flags:
|
|
superClasses:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
TYPE_PARAMETER name:T1 index:0 variance: upperBounds:[kotlin.Any?]
|
|
superClassifiers:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
TYPE_PARAMETER name:T2 index:1 variance: upperBounds:[kotlin.Any?]
|
|
superClassifiers:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
CONSTRUCTOR visibility:public <> (x:T1, y:T2) returnType:Test1<T1, T2> flags:
|
|
VALUE_PARAMETER name:x index:0 type:T1 flags:
|
|
VALUE_PARAMETER name:y index:1 type:T2 flags:
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
|
INSTANCE_INITIALIZER_CALL classDescriptor='Test1'
|
|
PROPERTY name:x type:T1 visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:x type:T1 visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter x: T1' type=T1 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test1<T1, T2>) returnType:T1 flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test1<T1, T2> flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-x>(): T1'
|
|
GET_FIELD 'x: T1' type=T1 origin=null
|
|
receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> origin=null
|
|
PROPERTY name:y type:T2 visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:y type:T2 visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter y: T2' type=T2 origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test1<T1, T2>) returnType:T2 flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test1<T1, T2> flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-y>(): T2'
|
|
GET_FIELD 'y: T2' type=T2 origin=null
|
|
receiver: GET_VAR 'this@Test1: Test1<T1, T2>' type=Test1<T1, T2> origin=null
|
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
CLASS CLASS name:Test2 modality:FINAL visibility:public flags:
|
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test2 flags:
|
|
superClasses:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:Test2 flags:
|
|
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
|
|
VALUE_PARAMETER name:y index:1 type:kotlin.String flags:
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
|
INSTANCE_INITIALIZER_CALL classDescriptor='Test2'
|
|
PROPERTY name:y type:kotlin.String visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter y: String' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test2) returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test2 flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-y>(): String'
|
|
GET_FIELD 'y: String' type=kotlin.String origin=null
|
|
receiver: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
|
|
CLASS CLASS name:TestInner modality:FINAL visibility:public flags:
|
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test2.TestInner<Z> flags:
|
|
superClasses:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
TYPE_PARAMETER name:Z index:0 variance: upperBounds:[kotlin.Any?]
|
|
superClassifiers:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
CONSTRUCTOR visibility:public <> ($this:Test2, z:Z) returnType:Test2.TestInner<Z> flags:
|
|
$outer: VALUE_PARAMETER name:<this> type:Test2 flags:
|
|
VALUE_PARAMETER name:z index:0 type:Z flags:
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
|
INSTANCE_INITIALIZER_CALL classDescriptor='TestInner'
|
|
PROPERTY name:z type:Z visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:z type:Z visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter z: Z' type=Z origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-z> visibility:public modality:FINAL <> ($this:Test2.TestInner<Z>) returnType:Z flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test2.TestInner<Z> flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-z>(): Z'
|
|
GET_FIELD 'z: Z' type=Z origin=null
|
|
receiver: GET_VAR 'this@TestInner: TestInner<Z>' type=Test2.TestInner<Z> origin=null
|
|
CONSTRUCTOR visibility:public <> ($this:Test2, z:Z, i:kotlin.Int) returnType:Test2.TestInner<Z> flags:
|
|
$outer: VALUE_PARAMETER name:<this> type:Test2 flags:
|
|
VALUE_PARAMETER name:z index:0 type:Z flags:
|
|
VALUE_PARAMETER name:i index:1 type:kotlin.Int flags:
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor TestInner(Z)'
|
|
<Z>: Z
|
|
$this: GET_VAR 'this@Test2: Test2' type=Test2 origin=null
|
|
z: GET_VAR 'value-parameter z: Z' type=Z origin=null
|
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
CLASS CLASS name:Test3 modality:FINAL visibility:public flags:
|
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test3 flags:
|
|
superClasses:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.String) returnType:Test3 flags:
|
|
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
|
|
VALUE_PARAMETER name:y index:1 type:kotlin.String flags:
|
|
EXPRESSION_BODY
|
|
CONST String type=kotlin.String value=
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
|
INSTANCE_INITIALIZER_CALL classDescriptor='Test3'
|
|
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test3) returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test3 flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-x>(): Int'
|
|
GET_FIELD 'x: Int' type=kotlin.Int origin=null
|
|
receiver: GET_VAR 'this@Test3: Test3' type=Test3 origin=null
|
|
PROPERTY name:y type:kotlin.String visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:y type:kotlin.String visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter y: String = ...' type=kotlin.String origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-y> visibility:public modality:FINAL <> ($this:Test3) returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test3 flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-y>(): String'
|
|
GET_FIELD 'y: String' type=kotlin.String origin=null
|
|
receiver: GET_VAR 'this@Test3: Test3' type=Test3 origin=null
|
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
CLASS CLASS name:Test4 modality:FINAL visibility:public flags:
|
|
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:Test4<T> flags:
|
|
superClasses:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
TYPE_PARAMETER name:T index:0 variance: upperBounds:[kotlin.Any?]
|
|
superClassifiers:
|
|
CLASS IR_EXTERNAL_DECLARATION_STUB CLASS name:Any modality:OPEN visibility:public flags:
|
|
CONSTRUCTOR visibility:public <> (x:kotlin.Int) returnType:Test4<T> flags:
|
|
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
|
|
INSTANCE_INITIALIZER_CALL classDescriptor='Test4'
|
|
PROPERTY name:x type:kotlin.Int visibility:public modality:FINAL flags:val
|
|
FIELD PROPERTY_BACKING_FIELD name:x type:kotlin.Int visibility:public
|
|
EXPRESSION_BODY
|
|
GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
|
|
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-x> visibility:public modality:FINAL <> ($this:Test4<T>) returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:Test4<T> flags:
|
|
BLOCK_BODY
|
|
RETURN type=kotlin.Nothing from='<get-x>(): Int'
|
|
GET_FIELD 'x: Int' type=kotlin.Int origin=null
|
|
receiver: GET_VAR 'this@Test4: Test4<T>' type=Test4<T> origin=null
|
|
CONSTRUCTOR visibility:public <> (x:kotlin.Int, y:kotlin.Int) returnType:Test4<T> flags:
|
|
VALUE_PARAMETER name:x index:0 type:kotlin.Int flags:
|
|
VALUE_PARAMETER name:y index:1 type:kotlin.Int flags:
|
|
EXPRESSION_BODY
|
|
CONST Int type=kotlin.Int value=42
|
|
BLOCK_BODY
|
|
DELEGATING_CONSTRUCTOR_CALL 'constructor Test4(Int)'
|
|
<T>: T
|
|
x: CALL 'plus(Int): Int' type=kotlin.Int origin=PLUS
|
|
$this: GET_VAR 'value-parameter x: Int' type=kotlin.Int origin=null
|
|
other: GET_VAR 'value-parameter y: Int = ...' type=kotlin.Int origin=null
|
|
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:Boolean flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> (other:kotlin.Any?) returnType:Boolean flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:
|
|
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:Int flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> () returnType:Int flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:String flags:
|
|
overridden:
|
|
FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> () returnType:String flags:
|
|
$this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:
|
|
|