KtFile: 'extensions.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(78,185): 'class MyClass {'
  null

KtClassBody(92,185): '{'
  null

KtObjectDeclaration(98,183): 'companion object {'
  null

KtDeclarationModifierList(98,107): 'companion'
  null

KtClassBody(115,183): '{'
  null

KtProperty(125,177): 'val MyClass.Companion.bar: MyClass get() = MyClass()'
  null

KtTypeReference(129,146): 'MyClass.Companion'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Companion
    ]

KtUserType(129,146): 'MyClass.Companion'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Companion
    ]

KtUserType(129,136): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

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

KtNameReferenceExpression(137,146): 'Companion'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Companion
    ]

KtTypeReference(152,159): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(152,159): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

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

KtPropertyAccessor(160,177): 'get() = MyClass()'
  null

KtParameterList(163,165): '()'
  null

KtCallExpression(168,177): 'MyClass()'
  KaSymbolResolutionSuccess:
    symbols = [
      <constructor>(): MyClass
    ]

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

KtValueArgumentList(175,177): '()'
  null

KtNamedFunction(187,209): 'fun foo(a: MyClass) {}'
  null

KtParameterList(194,206): '(a: MyClass)'
  null

KtParameter(195,205): 'a: MyClass'
  null

KtTypeReference(198,205): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

KtUserType(198,205): 'MyClass'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass
    ]

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

KtBlockExpression(207,209): '{}'
  null

KtNamedFunction(211,259): 'fun main() {'
  null

KtParameterList(219,221): '()'
  null

KtBlockExpression(222,259): '{'
  null

KtCallExpression(228,244): 'foo(MyClass.bar)'
  KaSymbolResolutionError:
    candidateSymbols = [
      /foo(a: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass2', but 'MyClass' was expected.>

KtNameReferenceExpression(228,231): 'foo'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      /foo(a: MyClass): kotlin.Unit
    ]
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'MyClass2', but 'MyClass' was expected.>

KtValueArgumentList(231,244): '(MyClass.bar)'
  null

KtValueArgument(232,243): 'MyClass.bar'
  null

KtDotQualifiedExpression(232,243): 'MyClass.bar'
  KaSymbolResolutionError:
    candidateSymbols = [
      val bar: MyClass2
    ]
    diagnostic = ERROR<UNRESOLVED_REFERENCE_WRONG_RECEIVER: Candidate 'val MyClass2.Companion.bar: MyClass2' is inapplicable because of a receiver type mismatch.>

KtNameReferenceExpression(232,239): 'MyClass'
  isImplicitReferenceToCompanion: true
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass.Companion
    ]

KtNameReferenceExpression(240,243): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = [
      val bar: MyClass2
    ]
    diagnostic = ERROR<UNRESOLVED_REFERENCE_WRONG_RECEIVER: Candidate 'val MyClass2.Companion.bar: MyClass2' is inapplicable because of a receiver type mismatch.>

KtCallExpression(249,257): 'foo(bar)'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(a: MyClass): kotlin.Unit
    ]

KtNameReferenceExpression(249,252): 'foo'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(a: MyClass): kotlin.Unit
    ]

KtValueArgumentList(252,257): '(bar)'
  null

KtValueArgument(253,256): 'bar'
  null

KtNameReferenceExpression(253,256): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionError:
    candidateSymbols = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'bar'.>

KtClass(261,300): 'class MyClass2 {'
  null

KtClassBody(276,300): '{'
  null

KtObjectDeclaration(282,298): 'companion object'
  null

KtDeclarationModifierList(282,291): 'companion'
  null

KtProperty(302,357): 'val MyClass2.Companion.bar: MyClass2 get() = MyClass2()'
  null

KtTypeReference(306,324): 'MyClass2.Companion'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2.Companion
    ]

KtUserType(306,324): 'MyClass2.Companion'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2.Companion
    ]

KtUserType(306,314): 'MyClass2'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtNameReferenceExpression(306,314): 'MyClass2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtNameReferenceExpression(315,324): 'Companion'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2.Companion
    ]

KtTypeReference(330,338): 'MyClass2'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtUserType(330,338): 'MyClass2'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtNameReferenceExpression(330,338): 'MyClass2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtPropertyAccessor(339,357): 'get() = MyClass2()'
  null

KtParameterList(342,344): '()'
  null

KtCallExpression(347,357): 'MyClass2()'
  KaSymbolResolutionSuccess:
    symbols = [
      <constructor>(): MyClass2
    ]

KtNameReferenceExpression(347,355): 'MyClass2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtValueArgumentList(355,357): '()'
  null

KtNamedFunction(359,383): 'fun foo2(a: MyClass2) {}'
  null

KtParameterList(367,380): '(a: MyClass2)'
  null

KtParameter(368,379): 'a: MyClass2'
  null

KtTypeReference(371,379): 'MyClass2'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtUserType(371,379): 'MyClass2'
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtNameReferenceExpression(371,379): 'MyClass2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2
    ]

KtBlockExpression(381,383): '{}'
  null

KtNamedFunction(385,437): 'fun main2() {'
  null

KtParameterList(394,396): '()'
  null

KtBlockExpression(397,437): '{'
  null

KtCallExpression(403,421): 'foo2(MyClass2.bar)'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo2(a: MyClass2): kotlin.Unit
    ]

KtNameReferenceExpression(403,407): 'foo2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /foo2(a: MyClass2): kotlin.Unit
    ]

KtValueArgumentList(407,421): '(MyClass2.bar)'
  null

KtValueArgument(408,420): 'MyClass2.bar'
  null

KtDotQualifiedExpression(408,420): 'MyClass2.bar'
  KaSymbolResolutionSuccess:
    symbols = [
      val bar: MyClass2
    ]

KtNameReferenceExpression(408,416): 'MyClass2'
  isImplicitReferenceToCompanion: true
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /MyClass2.Companion
    ]

KtNameReferenceExpression(417,420): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val bar: MyClass2
    ]

KtCallExpression(426,435): 'foo2(bar)'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo2(a: MyClass2): kotlin.Unit
    ]

KtNameReferenceExpression(426,430): 'foo2'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /foo2(a: MyClass2): kotlin.Unit
    ]

KtValueArgumentList(430,435): '(bar)'
  null

KtValueArgument(431,434): 'bar'
  null

KtNameReferenceExpression(431,434): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: Used
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      val bar: MyClass2
    ]
