KtFile: 'main.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(28,205): 'sealed class MyClass {'
  null

KtDeclarationModifierList(28,34): 'sealed'
  null

KtClassBody(49,205): '{'
  null

KtObjectDeclaration(55,148): 'companion object {'
  null

KtDeclarationModifierList(55,64): 'companion'
  null

KtClassBody(72,148): '{'
  null

KtProperty(82,107): 'val FOO: MyClass = TODO()'
  null

KtTypeReference(91,98): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(91,98): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtNameReferenceExpression(91,98): 'MyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtCallExpression(101,107): 'TODO()'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/TODO(): kotlin.Nothing
    ]

KtNameReferenceExpression(101,105): 'TODO'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/TODO(): kotlin.Nothing
    ]

KtValueArgumentList(105,107): '()'
  null

KtProperty(116,142): 'val FOR_TYPE_MISMATCH = ""'
  null

KtStringTemplateExpression(140,142): '""'
  null

KtObjectDeclaration(154,176): 'object Bar : MyClass()'
  null

KtSuperTypeList(167,176): 'MyClass()'
  null

KtSuperTypeCallEntry(167,176): 'MyClass()'
  KaSymbolResolutionSuccess:
    symbols = [
      <constructor>(): MyClass
    ]

KtConstructorCalleeExpression(167,174): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      <constructor>(): MyClass
    ]

KtTypeReference(167,174): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(167,174): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtNameReferenceExpression(167,174): 'MyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtValueArgumentList(174,176): '()'
  null

KtObjectDeclaration(181,203): 'object ForTypeMismatch'
  null

KtNamedFunction(207,231): 'fun expectInt(x: Int) {}'
  null

KtParameterList(220,228): '(x: Int)'
  null

KtParameter(221,227): 'x: Int'
  null

KtTypeReference(224,227): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(224,227): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtNameReferenceExpression(224,227): 'Int'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtBlockExpression(229,231): '{}'
  null

KtNamedFunction(233,265): 'fun expectMyClass(x: MyClass) {}'
  null

KtParameterList(250,262): '(x: MyClass)'
  null

KtParameter(251,261): 'x: MyClass'
  null

KtTypeReference(254,261): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(254,261): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtNameReferenceExpression(254,261): 'MyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtBlockExpression(263,265): '{}'
  null

KtNamedFunction(267,295): 'fun <X> id(x: X): X = TODO()'
  null

KtTypeParameterList(271,274): '<X>'
  null

KtTypeParameter(272,273): 'X'
  null

KtParameterList(277,283): '(x: X)'
  null

KtParameter(278,282): 'x: X'
  null

KtTypeReference(281,282): 'X'
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtUserType(281,282): 'X'
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtNameReferenceExpression(281,282): 'X'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtTypeReference(285,286): 'X'
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtUserType(285,286): 'X'
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtNameReferenceExpression(285,286): 'X'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      X
    ]

KtCallExpression(289,295): 'TODO()'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/TODO(): kotlin.Nothing
    ]

KtNameReferenceExpression(289,293): 'TODO'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/TODO(): kotlin.Nothing
    ]

KtValueArgumentList(293,295): '()'
  null

KtNamedFunction(297,640): 'fun MyClass.foo() {'
  null

KtTypeReference(301,308): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(301,308): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtNameReferenceExpression(301,308): 'MyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtParameterList(312,314): '()'
  null

KtBlockExpression(315,640): '{'
  null

KtCallExpression(321,341): 'expectInt(MAX_VALUE)'
  KaSymbolResolutionSuccess:
    symbols = [
      /expectInt(x: kotlin.Int): kotlin.Unit
    ]

KtNameReferenceExpression(321,330): 'expectInt'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /expectInt(x: kotlin.Int): kotlin.Unit
    ]

KtValueArgumentList(330,341): '(MAX_VALUE)'
  null

KtValueArgument(331,340): 'MAX_VALUE'
  null

KtNameReferenceExpression(331,340): 'MAX_VALUE'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val MAX_VALUE: kotlin.Int
    ]

KtCallExpression(347,365): 'expectMyClass(FOO)'
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtNameReferenceExpression(347,360): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtValueArgumentList(360,365): '(FOO)'
  null

KtValueArgument(361,364): 'FOO'
  null

KtNameReferenceExpression(361,364): 'FOO'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val FOO: MyClass
    ]

KtCallExpression(370,392): 'expectMyClass(id(FOO))'
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtNameReferenceExpression(370,383): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtValueArgumentList(383,392): '(id(FOO))'
  null

KtValueArgument(384,391): 'id(FOO)'
  null

KtCallExpression(384,391): 'id(FOO)'
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtNameReferenceExpression(384,386): 'id'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtValueArgumentList(386,391): '(FOO)'
  null

KtValueArgument(387,390): 'FOO'
  null

KtNameReferenceExpression(387,390): 'FOO'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val FOO: MyClass
    ]

KtCallExpression(398,430): 'expectMyClass(FOR_TYPE_MISMATCH)'
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'String', but 'MyClass' was expected.>

KtNameReferenceExpression(398,411): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'String', but 'MyClass' was expected.>

KtValueArgumentList(411,430): '(FOR_TYPE_MISMATCH)'
  null

KtValueArgument(412,429): 'FOR_TYPE_MISMATCH'
  null

KtNameReferenceExpression(412,429): 'FOR_TYPE_MISMATCH'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val FOR_TYPE_MISMATCH: kotlin.String
    ]

KtCallExpression(435,471): 'expectMyClass(id(FOR_TYPE_MISMATCH))'
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'String', but 'MyClass' was expected.>

KtNameReferenceExpression(435,448): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'String', but 'MyClass' was expected.>

KtValueArgumentList(448,471): '(id(FOR_TYPE_MISMATCH))'
  null

KtValueArgument(449,470): 'id(FOR_TYPE_MISMATCH)'
  null

KtCallExpression(449,470): 'id(FOR_TYPE_MISMATCH)'
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtNameReferenceExpression(449,451): 'id'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtValueArgumentList(451,470): '(FOR_TYPE_MISMATCH)'
  null

KtValueArgument(452,469): 'FOR_TYPE_MISMATCH'
  null

KtNameReferenceExpression(452,469): 'FOR_TYPE_MISMATCH'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val FOR_TYPE_MISMATCH: kotlin.String
    ]

KtCallExpression(477,495): 'expectMyClass(Bar)'
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtNameReferenceExpression(477,490): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtValueArgumentList(490,495): '(Bar)'
  null

KtValueArgument(491,494): 'Bar'
  null

KtNameReferenceExpression(491,494): 'Bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Bar
    ]

KtCallExpression(500,522): 'expectMyClass(id(Bar))'
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtNameReferenceExpression(500,513): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]

KtValueArgumentList(513,522): '(id(Bar))'
  null

KtValueArgument(514,521): 'id(Bar)'
  null

KtCallExpression(514,521): 'id(Bar)'
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtNameReferenceExpression(514,516): 'id'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtValueArgumentList(516,521): '(Bar)'
  null

KtValueArgument(517,520): 'Bar'
  null

KtNameReferenceExpression(517,520): 'Bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Bar
    ]

KtCallExpression(528,558): 'expectMyClass(ForTypeMismatch)'
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass.ForTypeMismatch', but 'MyClass' was expected.>

KtNameReferenceExpression(528,541): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass.ForTypeMismatch', but 'MyClass' was expected.>

KtValueArgumentList(541,558): '(ForTypeMismatch)'
  null

KtValueArgument(542,557): 'ForTypeMismatch'
  null

KtNameReferenceExpression(542,557): 'ForTypeMismatch'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.ForTypeMismatch
    ]

KtCallExpression(563,597): 'expectMyClass(id(ForTypeMismatch))'
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass.ForTypeMismatch', but 'MyClass' was expected.>

KtNameReferenceExpression(563,576): 'expectMyClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      /expectMyClass(x: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass.ForTypeMismatch', but 'MyClass' was expected.>

KtValueArgumentList(576,597): '(id(ForTypeMismatch))'
  null

KtValueArgument(577,596): 'id(ForTypeMismatch)'
  null

KtCallExpression(577,596): 'id(ForTypeMismatch)'
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtNameReferenceExpression(577,579): 'id'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /id(x: X): X
    ]

KtValueArgumentList(579,596): '(ForTypeMismatch)'
  null

KtValueArgument(580,595): 'ForTypeMismatch'
  null

KtNameReferenceExpression(580,595): 'ForTypeMismatch'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.ForTypeMismatch
    ]

KtDotQualifiedExpression(603,638): 'JavaClass.expectJavaClass(INSTANCE)'
  KaSymbolResolutionSuccess:
    symbols = [
      /JavaClass.expectJavaClass(j: JavaClass!): kotlin.Unit
    ]

KtNameReferenceExpression(603,612): 'JavaClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /JavaClass
    ]

KtCallExpression(613,638): 'expectJavaClass(INSTANCE)'
  KaSymbolResolutionSuccess:
    symbols = [
      /JavaClass.expectJavaClass(j: JavaClass!): kotlin.Unit
    ]

KtNameReferenceExpression(613,628): 'expectJavaClass'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /JavaClass.expectJavaClass(j: JavaClass!): kotlin.Unit
    ]

KtValueArgumentList(628,638): '(INSTANCE)'
  null

KtValueArgument(629,637): 'INSTANCE'
  null

KtNameReferenceExpression(629,637): 'INSTANCE'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      var INSTANCE: JavaClass!
    ]
