KtFile: 'main.kt'
  null

KtPackageDirective(30,39): 'package b'
  null

KtNameReferenceExpression(38,39): 'b'
  null

KtImportList(40,63): 'import a1.*'
  null

KtImportDirective(40,51): 'import a1.*'
  null

KtNameReferenceExpression(47,49): 'a1'
  null

KtImportDirective(52,63): 'import a2.*'
  null

KtNameReferenceExpression(59,61): 'a2'
  null

KtClass(65,98): 'enum class MyEnum {'
  null

KtDeclarationModifierList(65,69): 'enum'
  null

KtClassBody(83,98): '{'
  null

KtEnumEntry(89,91): 'X,'
  null

KtEnumEntry(92,94): 'Y,'
  null

KtEnumEntry(95,96): 'Z'
  null

KtNamedFunction(100,121): 'fun foo(a: MyEnum) {}'
  null

KtParameterList(107,118): '(a: MyEnum)'
  null

KtParameter(108,117): 'a: MyEnum'
  null

KtTypeReference(111,117): 'MyEnum'
  null

KtUserType(111,117): 'MyEnum'
  null

KtNameReferenceExpression(111,117): 'MyEnum'
  null

KtBlockExpression(119,121): '{}'
  null

KtNamedFunction(123,170): 'fun main() {'
  null

KtParameterList(131,133): '()'
  null

KtBlockExpression(134,170): '{'
  null

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

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

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

KtValueArgument(144,145): 'X'
  null

KtNameReferenceExpression(144,145): 'X'
  KaCallResolutionError:
    candidateCalls = [
      KaSimpleVariableAccessCall:
        contextArguments = []
        dispatchReceiver = null
        extensionReceiver = null
        isContextSensitive = false
        kind = Read
        signature = KaVariableSignature:
          name = X
          receiverType = null
          returnType = b.MyEnum
          symbol = val X: b.MyEnum
          contextParameters = []
          callableId = a1/X
        typeArgumentsMapping = {},
      KaSimpleVariableAccessCall:
        contextArguments = []
        dispatchReceiver = null
        extensionReceiver = null
        isContextSensitive = false
        kind = Read
        signature = KaVariableSignature:
          name = X
          receiverType = null
          returnType = b.MyEnum
          symbol = val X: b.MyEnum
          contextParameters = []
          callableId = a2/X
        typeArgumentsMapping = {}
    ]
    diagnostic = ERROR<OVERLOAD_RESOLUTION_AMBIGUITY: Overload resolution ambiguity between candidates:
    val X: MyEnum
    val X: MyEnum>

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

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

KtValueArgumentList(154,157): '(Y)'
  null

KtValueArgument(155,156): 'Y'
  null

KtNameReferenceExpression(155,156): 'Y'
  KaCallResolutionError:
    candidateCalls = [
      KaSimpleVariableAccessCall:
        contextArguments = []
        dispatchReceiver = null
        extensionReceiver = null
        isContextSensitive = false
        kind = Read
        signature = KaVariableSignature:
          name = Y
          receiverType = null
          returnType = kotlin.String
          symbol = val Y: kotlin.String
          contextParameters = []
          callableId = a1/Y
        typeArgumentsMapping = {},
      KaSimpleVariableAccessCall:
        contextArguments = []
        dispatchReceiver = null
        extensionReceiver = null
        isContextSensitive = false
        kind = Read
        signature = KaVariableSignature:
          name = Y
          receiverType = null
          returnType = kotlin.String
          symbol = val Y: kotlin.String
          contextParameters = []
          callableId = a2/Y
        typeArgumentsMapping = {}
    ]
    diagnostic = ERROR<OVERLOAD_RESOLUTION_AMBIGUITY: Overload resolution ambiguity between candidates:
    val Y: String
    val Y: String>

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

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

KtValueArgumentList(165,168): '(Z)'
  null

KtValueArgument(166,167): 'Z'
  null

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