KtFile: 'simpleGeneric.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(78,108): 'enum class MyEnum {'
  null

KtDeclarationModifierList(78,82): 'enum'
  null

KtClassBody(96,108): '{'
  null

KtEnumEntry(102,104): 'X,'
  null

KtEnumEntry(105,106): 'Y'
  null

KtNamedFunction(110,131): 'fun foo(a: MyEnum) {}'
  null

KtParameterList(117,128): '(a: MyEnum)'
  null

KtParameter(118,127): 'a: MyEnum'
  null

KtTypeReference(121,127): 'MyEnum'
  null

KtUserType(121,127): 'MyEnum'
  null

KtNameReferenceExpression(121,127): 'MyEnum'
  null

KtBlockExpression(129,131): '{}'
  null

KtNamedFunction(133,161): 'fun <X> id(x: X): X = TODO()'
  null

KtTypeParameterList(137,140): '<X>'
  null

KtTypeParameter(138,139): 'X'
  null

KtParameterList(143,149): '(x: X)'
  null

KtParameter(144,148): 'x: X'
  null

KtTypeReference(147,148): 'X'
  null

KtUserType(147,148): 'X'
  null

KtNameReferenceExpression(147,148): 'X'
  null

KtTypeReference(151,152): 'X'
  null

KtUserType(151,152): 'X'
  null

KtNameReferenceExpression(151,152): 'X'
  null

KtCallExpression(155,161): 'TODO()'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Nothing
        symbol = kotlin/TODO(): kotlin.Nothing
        valueParameters = []
        contextParameters = []
        callableId = kotlin/TODO
      typeArgumentsMapping = {}
      valueArgumentMapping = {}

KtNameReferenceExpression(155,159): 'TODO'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Nothing
        symbol = kotlin/TODO(): kotlin.Nothing
        valueParameters = []
        contextParameters = []
        callableId = kotlin/TODO
      typeArgumentsMapping = {}
      valueArgumentMapping = {}

KtValueArgumentList(159,161): '()'
  null

KtNamedFunction(163,254): 'fun main() {'
  null

KtParameterList(171,173): '()'
  null

KtBlockExpression(174,254): '{'
  null

KtProperty(181,197): 'val L = MyEnum.X'
  null

KtDotQualifiedExpression(189,197): 'MyEnum.X'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = MyEnum
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = X
        receiverType = null
        returnType = MyEnum
        symbol = /MyEnum.X
        contextParameters = []
        callableId = /MyEnum.X
      typeArgumentsMapping = {}

KtNameReferenceExpression(189,195): 'MyEnum'
  null

KtNameReferenceExpression(196,197): 'X'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = MyEnum
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = X
        receiverType = null
        returnType = MyEnum
        symbol = /MyEnum.X
        contextParameters = []
        callableId = /MyEnum.X
      typeArgumentsMapping = {}

KtCallExpression(203,213): 'foo(id(X))'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(X) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(203,206): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(X) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(206,213): '(id(X))'
  null

KtValueArgument(207,212): 'id(X)'
  null

KtCallExpression(207,212): 'id(X)'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        X -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(207,209): 'id'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        X -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(209,212): '(X)'
  null

KtValueArgument(210,211): 'X'
  null

KtNameReferenceExpression(210,211): 'X'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = X
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      isContextSensitive = true
      kind = Read
      signature = KaVariableSignature:
        name = X
        receiverType = null
        returnType = MyEnum
        symbol = /MyEnum.X
        contextParameters = []
        callableId = /MyEnum.X
      typeArgumentsMapping = {}

KtCallExpression(218,228): 'foo(id(L))'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(L) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(218,221): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(L) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(221,228): '(id(L))'
  null

KtValueArgument(222,227): 'id(L)'
  null

KtCallExpression(222,227): 'id(L)'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        L -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(222,224): 'id'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        L -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(224,227): '(L)'
  null

KtValueArgument(225,226): 'L'
  null

KtNameReferenceExpression(225,226): 'L'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = L
        receiverType = null
        returnType = MyEnum
        symbol = val L: MyEnum
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtCallExpression(233,252): 'foo(id(UNRESOLVED))'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(UNRESOLVED) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(233,236): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = kotlin.Unit
        symbol = /foo(a: MyEnum): kotlin.Unit
        valueParameters = [
          KaVariableSignature:
            name = a
            receiverType = null
            returnType = MyEnum
            symbol = a: MyEnum
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {
        id(UNRESOLVED) -> (KaVariableSignature:
          name = a
          receiverType = null
          returnType = MyEnum
          symbol = a: MyEnum
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(236,252): '(id(UNRESOLVED))'
  null

KtValueArgument(237,251): 'id(UNRESOLVED)'
  null

KtCallExpression(237,251): 'id(UNRESOLVED)'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        UNRESOLVED -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtNameReferenceExpression(237,239): 'id'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MyEnum
        symbol = /id(x: X): X
        valueParameters = [
          KaVariableSignature:
            name = x
            receiverType = null
            returnType = MyEnum
            symbol = x: X
            contextParameters = []
            callableId = null
        ]
        contextParameters = []
        callableId = /id
      typeArgumentsMapping = {
        X -> (MyEnum)
      }
      valueArgumentMapping = {
        UNRESOLVED -> (KaVariableSignature:
          name = x
          receiverType = null
          returnType = MyEnum
          symbol = x: X
          contextParameters = []
          callableId = null)
      }

KtValueArgumentList(239,251): '(UNRESOLVED)'
  null

KtValueArgument(240,250): 'UNRESOLVED'
  null

KtNameReferenceExpression(240,250): 'UNRESOLVED'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'UNRESOLVED'.>
