KtFile: 'implicitInvokeFromBinaryExpression.kt'
  NO_CANDIDATES

KtPackageDirective(0,0): ''
  NO_CANDIDATES

KtImportList(0,0): ''
  NO_CANDIDATES

KtNamedFunction(0,81): 'private fun main(n: Int, bar: Int.(Int) -> Int): Int {'
  NO_CANDIDATES

KtDeclarationModifierList(0,7): 'private'
  NO_CANDIDATES

KtParameterList(16,47): '(n: Int, bar: Int.(Int) -> Int)'
  NO_CANDIDATES

KtParameter(17,23): 'n: Int'
  NO_CANDIDATES

KtTypeReference(20,23): 'Int'
  NO_CANDIDATES

KtUserType(20,23): 'Int'
  NO_CANDIDATES

KtNameReferenceExpression(20,23): 'Int'
  NO_CANDIDATES

KtParameter(25,46): 'bar: Int.(Int) -> Int'
  NO_CANDIDATES

KtTypeReference(30,46): 'Int.(Int) -> Int'
  NO_CANDIDATES

KtFunctionType(30,46): 'Int.(Int) -> Int'
  NO_CANDIDATES

KtFunctionTypeReceiver(30,33): 'Int'
  NO_CANDIDATES

KtTypeReference(30,33): 'Int'
  NO_CANDIDATES

KtUserType(30,33): 'Int'
  NO_CANDIDATES

KtNameReferenceExpression(30,33): 'Int'
  NO_CANDIDATES

KtParameterList(34,39): '(Int)'
  NO_CANDIDATES

KtParameter(35,38): 'Int'
  NO_CANDIDATES

KtTypeReference(35,38): 'Int'
  NO_CANDIDATES

KtUserType(35,38): 'Int'
  NO_CANDIDATES

KtNameReferenceExpression(35,38): 'Int'
  NO_CANDIDATES

KtTypeReference(43,46): 'Int'
  NO_CANDIDATES

KtUserType(43,46): 'Int'
  NO_CANDIDATES

KtNameReferenceExpression(43,46): 'Int'
  NO_CANDIDATES

KtTypeReference(49,52): 'Int'
  NO_CANDIDATES

KtUserType(49,52): 'Int'
  NO_CANDIDATES

KtNameReferenceExpression(49,52): 'Int'
  NO_CANDIDATES

KtBlockExpression(53,81): '{'
  NO_CANDIDATES

KtReturnExpression(59,79): 'return n bar (n + 1)'
  NO_CANDIDATES

KtBinaryExpression(66,79): 'n bar (n + 1)'
  KaApplicableCallCandidate:
    candidate = KaImplicitInvokeCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n bar (n + 1)
        isSafeNavigation = false
        type = kotlin.Int.(kotlin.Int) -> kotlin.Int
      extensionReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Function2.invoke(<dispatch receiver>: (P1, P2) -> R, p1: P1, p2: P2): R
        valueParameters = [
          KaVariableSignature:
            name = p1
            receiverType = null
            returnType = kotlin.Int
            symbol = p1: P1
            contextParameters = []
            callableId = null,
          KaVariableSignature:
            name = p2
            receiverType = null
            returnType = kotlin.Int
            symbol = p2: P2
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Function2.invoke
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        (n + 1) -> (KaVariableSignature:
          name = p2
          receiverType = null
          returnType = kotlin.Int
          symbol = p2: P2
          contextParameters = []
          callableId = null)
      }
    isInBestCandidates = true

KtNameReferenceExpression(66,67): 'n'
  KaApplicableCallCandidate:
    candidate = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = n
        receiverType = null
        returnType = kotlin.Int
        symbol = n: kotlin.Int
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}
    isInBestCandidates = true

KtOperationReferenceExpression(68,71): 'bar'
  KaApplicableCallCandidate:
    candidate = KaImplicitInvokeCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n bar (n + 1)
        isSafeNavigation = false
        type = kotlin.Int.(kotlin.Int) -> kotlin.Int
      extensionReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Function2.invoke(<dispatch receiver>: (P1, P2) -> R, p1: P1, p2: P2): R
        valueParameters = [
          KaVariableSignature:
            name = p1
            receiverType = null
            returnType = kotlin.Int
            symbol = p1: P1
            contextParameters = []
            callableId = null,
          KaVariableSignature:
            name = p2
            receiverType = null
            returnType = kotlin.Int
            symbol = p2: P2
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Function2.invoke
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        (n + 1) -> (KaVariableSignature:
          name = p2
          receiverType = null
          returnType = kotlin.Int
          symbol = p2: P2
          contextParameters = []
          callableId = null)
      }
    isInBestCandidates = true

KtParenthesizedExpression(72,79): '(n + 1)'
  NO_CANDIDATES

KtBinaryExpression(73,78): 'n + 1'
  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Double
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Double): kotlin.Double
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Double
            symbol = other: kotlin.Double
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Double
          symbol = other: kotlin.Double
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Double' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Float
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Float): kotlin.Float
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Float
            symbol = other: kotlin.Float
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Float
          symbol = other: kotlin.Float
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Float' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Byte): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Byte
            symbol = other: kotlin.Byte
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Byte
          symbol = other: kotlin.Byte
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Byte' was expected.>
    isInBestCandidates = false

  KaApplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Int): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Int
            symbol = other: kotlin.Int
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Int
          symbol = other: kotlin.Int
          contextParameters = []
          callableId = null)
      }
    isInBestCandidates = true

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Short): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Short
            symbol = other: kotlin.Short
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Short
          symbol = other: kotlin.Short
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Short' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Long
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Long): kotlin.Long
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Long
            symbol = other: kotlin.Long
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Long
          symbol = other: kotlin.Long
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Long' was expected.>
    isInBestCandidates = false

KtNameReferenceExpression(73,74): 'n'
  KaApplicableCallCandidate:
    candidate = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = n
        receiverType = null
        returnType = kotlin.Int
        symbol = n: kotlin.Int
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}
    isInBestCandidates = true

KtOperationReferenceExpression(75,76): '+'
  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Double
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Double): kotlin.Double
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Double
            symbol = other: kotlin.Double
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Double
          symbol = other: kotlin.Double
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Double' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Float
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Float): kotlin.Float
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Float
            symbol = other: kotlin.Float
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Float
          symbol = other: kotlin.Float
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Float' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Byte): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Byte
            symbol = other: kotlin.Byte
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Byte
          symbol = other: kotlin.Byte
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Byte' was expected.>
    isInBestCandidates = false

  KaApplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Int): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Int
            symbol = other: kotlin.Int
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Int
          symbol = other: kotlin.Int
          contextParameters = []
          callableId = null)
      }
    isInBestCandidates = true

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Int
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Short): kotlin.Int
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Short
            symbol = other: kotlin.Short
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Short
          symbol = other: kotlin.Short
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Short' was expected.>
    isInBestCandidates = false

  KaInapplicableCallCandidate:
    candidate = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = n
        isSafeNavigation = false
        type = kotlin.Int
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Long
        symbol = kotlin/Int.plus(<dispatch receiver>: kotlin.Int, other: kotlin.Long): kotlin.Long
        valueParameters = [
          KaVariableSignature:
            name = other
            receiverType = null
            returnType = kotlin.Long
            symbol = other: kotlin.Long
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = kotlin/Int.plus
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        1 -> (KaVariableSignature:
          name = other
          receiverType = null
          returnType = kotlin.Long
          symbol = other: kotlin.Long
          contextParameters = []
          callableId = null)
      }
    diagnostic = ERROR<ARGUMENT_TYPE_MISMATCH: Argument type mismatch: actual type is 'Int', but 'Long' was expected.>
    isInBestCandidates = false

KtConstantExpression(77,78): '1'
  NO_CANDIDATES
