FILE fqName:<root> fileName:/a.kt
  CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
    CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C 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]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
    FUN name:main visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.C
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="C.main()"
    FUN name:main visibility:public modality:FINAL <T> ($this:<root>.C, t:T of <root>.C.main) returnType:T of <root>.C.main
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:<root>.C
      VALUE_PARAMETER name:t index:0 type:T of <root>.C.main
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="C.main(T): T"
        RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of <root>.C.main): T of <root>.C.main declared in <root>.C'
          GET_VAR 't: T of <root>.C.main declared in <root>.C.main' type=T of <root>.C.main origin=null
  CLASS OBJECT name:O modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.O
    CONSTRUCTOR visibility:private <> () returnType:<root>.O [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:O 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]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
    FUN name:main visibility:public modality:FINAL <> ($this:<root>.O) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:<root>.O
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="O.main()"
    FUN name:main visibility:public modality:FINAL <T> ($this:<root>.O, t:T of <root>.O.main) returnType:T of <root>.O.main
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:<root>.O
      VALUE_PARAMETER name:t index:0 type:T of <root>.O.main
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="O.main(T): T"
        RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of <root>.O.main): T of <root>.O.main declared in <root>.O'
          GET_VAR 't: T of <root>.O.main declared in <root>.O.main' type=T of <root>.O.main origin=null
  FUN name:main visibility:public modality:FINAL <> () returnType:kotlin.Unit
    BLOCK_BODY
      CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
        message: CONST String type=kotlin.String value="main()"
  FUN name:main visibility:public modality:FINAL <T> (t:T of <root>.main) returnType:T of <root>.main
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER name:t index:0 type:T of <root>.main
    BLOCK_BODY
      CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
        message: CONST String type=kotlin.String value="main(T): T"
      RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of <root>.main): T of <root>.main declared in <root>'
        GET_VAR 't: T of <root>.main declared in <root>.main' type=T of <root>.main origin=null
FILE fqName:foo fileName:/b.kt
  CLASS CLASS name:C modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.C
    CONSTRUCTOR visibility:public <> () returnType:foo.C [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C 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]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
    FUN name:main visibility:public modality:FINAL <> ($this:foo.C) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:foo.C
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="foo.C.main()"
    FUN name:main visibility:public modality:FINAL <T> ($this:foo.C, t:T of foo.C.main) returnType:T of foo.C.main
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:foo.C
      VALUE_PARAMETER name:t index:0 type:T of foo.C.main
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="foo.C.main(T): T"
        RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of foo.C.main): T of foo.C.main declared in foo.C'
          GET_VAR 't: T of foo.C.main declared in foo.C.main' type=T of foo.C.main origin=null
  CLASS OBJECT name:O modality:FINAL visibility:public superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:foo.O
    CONSTRUCTOR visibility:private <> () returnType:foo.O [primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS OBJECT name:O 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]
      overridden:
        public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
      $this: VALUE_PARAMETER name:<this> 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:<this> 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:<this> type:kotlin.Any
    FUN name:main visibility:public modality:FINAL <> ($this:foo.O) returnType:kotlin.Unit
      $this: VALUE_PARAMETER name:<this> type:foo.O
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="foo.O.main()"
    FUN name:main visibility:public modality:FINAL <T> ($this:foo.O, t:T of foo.O.main) returnType:T of foo.O.main
      TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
      $this: VALUE_PARAMETER name:<this> type:foo.O
      VALUE_PARAMETER name:t index:0 type:T of foo.O.main
      BLOCK_BODY
        CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
          message: CONST String type=kotlin.String value="foo.O.main(T): T"
        RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of foo.O.main): T of foo.O.main declared in foo.O'
          GET_VAR 't: T of foo.O.main declared in foo.O.main' type=T of foo.O.main origin=null
  FUN name:main visibility:public modality:FINAL <> () returnType:kotlin.Unit
    BLOCK_BODY
      CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
        message: CONST String type=kotlin.String value="foo.main()"
  FUN name:main visibility:public modality:FINAL <T> (t:T of foo.main) returnType:T of foo.main
    TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
    VALUE_PARAMETER name:t index:0 type:T of foo.main
    BLOCK_BODY
      CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
        message: CONST String type=kotlin.String value="foo.main(T): T"
      RETURN type=kotlin.Nothing from='public final fun main <T> (t: T of foo.main): T of foo.main declared in foo'
        GET_VAR 't: T of foo.main declared in foo.main' type=T of foo.main origin=null
