KtFile: 'callChain.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtNamedFunction(0,35): 'fun Int.foo(a: Int): Int = this + a'
  null

KtTypeReference(4,7): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(4,7): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtParameterList(11,19): '(a: Int)'
  null

KtParameter(12,18): 'a: Int'
  null

KtTypeReference(15,18): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(15,18): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtTypeReference(21,24): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(21,24): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtBinaryExpression(27,35): 'this + a'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Int): kotlin.Int
    ]

KtThisExpression(27,31): 'this'
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/foo)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: []
          type: kotlin/Int
        typeParameters: []
        visibility: PUBLIC
    ]

KtNameReferenceExpression(27,31): 'this'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/foo)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: []
          type: kotlin/Int
        typeParameters: []
        visibility: PUBLIC
    ]

KtOperationReferenceExpression(32,33): '+'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(34,35): 'a'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      a: kotlin.Int
    ]

KtNamedFunction(36,80): 'fun Int?.bar(b: kotlin.Int): Int = this ?: b'
  null

KtTypeReference(40,44): 'Int?'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtNullableType(40,44): 'Int?'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(40,43): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtParameterList(48,63): '(b: kotlin.Int)'
  null

KtParameter(49,62): 'b: kotlin.Int'
  null

KtTypeReference(52,62): 'kotlin.Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(52,62): 'kotlin.Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(52,58): 'kotlin'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin
    ]

KtNameReferenceExpression(52,58): 'kotlin'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin
    ]

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

KtTypeReference(65,68): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(65,68): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtBinaryExpression(71,80): 'this ?: b'
  null

KtThisExpression(71,75): 'this'
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/bar)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: []
          type: kotlin/Int?
        typeParameters: []
        visibility: PUBLIC
    ]

KtNameReferenceExpression(71,75): 'this'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      KaReceiverParameterSymbol:
        anchorPsi: KtTypeReference
        annotations: []
        callableId: null
        contextParameters: []
        contextReceivers: []
        isActual: false
        isCompanion: false
        isDelegated: false
        isExpect: false
        isExtension: false
        isExternal: false
        isVal: true
        location: LOCAL
        modality: FINAL
        name: <receiver>
        origin: SOURCE
        owningCallableSymbol: KaNamedFunctionSymbol(/bar)
        psi: KtTypeReference
        realPsi: KtTypeReference
        receiverParameter: null
        returnType: KaUsualClassType:
          annotations: []
          typeArguments: []
          type: kotlin/Int?
        typeParameters: []
        visibility: PUBLIC
    ]

KtOperationReferenceExpression(76,78): '?:'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  null

KtNameReferenceExpression(79,80): 'b'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: true
  KaSymbolResolutionSuccess:
    symbols = [
      b: kotlin.Int
    ]

KtNamedFunction(82,156): 'fun usage() {'
  null

KtParameterList(91,93): '()'
  null

KtBlockExpression(94,156): '{'
  null

KtDotQualifiedExpression(100,154): '(1.foo(2).bar(3) as? Int)?.foo(4.bar(5).bar(6)).bar(0)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtSafeQualifiedExpression(100,147): '(1.foo(2).bar(3) as? Int)?.foo(4.bar(5).bar(6))'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtParenthesizedExpression(100,125): '(1.foo(2).bar(3) as? Int)'
  null

KtBinaryExpressionWithTypeRHS(101,124): '1.foo(2).bar(3) as? Int'
  null

KtDotQualifiedExpression(101,116): '1.foo(2).bar(3)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtDotQualifiedExpression(101,109): '1.foo(2)'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtConstantExpression(101,102): '1'
  null

KtCallExpression(103,109): 'foo(2)'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(103,106): 'foo'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(106,109): '(2)'
  null

KtValueArgument(107,108): '2'
  null

KtConstantExpression(107,108): '2'
  null

KtCallExpression(110,116): 'bar(3)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(110,113): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(113,116): '(3)'
  null

KtValueArgument(114,115): '3'
  null

KtConstantExpression(114,115): '3'
  null

KtOperationReferenceExpression(117,120): 'as?'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  null

KtTypeReference(121,124): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

KtUserType(121,124): 'Int'
  KaSymbolResolutionSuccess:
    symbols = [
      kotlin/Int
    ]

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

KtCallExpression(127,147): 'foo(4.bar(5).bar(6))'
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(127,130): 'foo'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /foo(<extension receiver>: kotlin.Int, a: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(130,147): '(4.bar(5).bar(6))'
  null

KtValueArgument(131,146): '4.bar(5).bar(6)'
  null

KtDotQualifiedExpression(131,146): '4.bar(5).bar(6)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtDotQualifiedExpression(131,139): '4.bar(5)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtConstantExpression(131,132): '4'
  null

KtCallExpression(133,139): 'bar(5)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(133,136): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(136,139): '(5)'
  null

KtValueArgument(137,138): '5'
  null

KtConstantExpression(137,138): '5'
  null

KtCallExpression(140,146): 'bar(6)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(140,143): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(143,146): '(6)'
  null

KtValueArgument(144,145): '6'
  null

KtConstantExpression(144,145): '6'
  null

KtCallExpression(148,154): 'bar(0)'
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtNameReferenceExpression(148,151): 'bar'
  isImplicitReferenceToCompanion: false
  contextSensitiveResolutionStatus: NotAvailable
  lookupLocally: false
  KaSymbolResolutionSuccess:
    symbols = [
      /bar(<extension receiver>: kotlin.Int?, b: kotlin.Int): kotlin.Int
    ]

KtValueArgumentList(151,154): '(0)'
  null

KtValueArgument(152,153): '0'
  null

KtConstantExpression(152,153): '0'
  null
