KtFile: 'explicitReturnTypes.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

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

KtDeclarationModifierList(78,82): 'enum'
  null

KtClassBody(96,268): '{'
  null

KtEnumEntry(102,110): 'Option1,'
  null

KtEnumEntry(111,119): 'Option2,'
  null

KtEnumEntry(120,128): 'Option3;'
  null

KtObjectDeclaration(133,266): 'companion object {'
  null

KtDeclarationModifierList(133,142): 'companion'
  null

KtClassBody(150,266): '{'
  null

KtProperty(160,190): 'val enumProp: MyEnum = Option1'
  null

KtTypeReference(174,180): 'MyEnum'
  null

KtUserType(174,180): 'MyEnum'
  null

KtNameReferenceExpression(174,180): 'MyEnum'
  null

KtNameReferenceExpression(183,190): 'Option1'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaImplicitReceiverValue:
        symbol = /MyEnum
        type = MyEnum.Companion
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = Option1
        receiverType = null
        returnType = MyEnum
        symbol = /MyEnum.Option1
        contextParameters = []
        callableId = /MyEnum.Option1
      typeArgumentsMapping = {}

KtProperty(199,226): 'val stringProp: String = ""'
  null

KtTypeReference(215,221): 'String'
  null

KtUserType(215,221): 'String'
  null

KtNameReferenceExpression(215,221): 'String'
  null

KtStringTemplateExpression(224,226): '""'
  null

KtNamedFunction(235,260): 'fun getOption() = Option1'
  null

KtParameterList(248,250): '()'
  null

KtNameReferenceExpression(253,260): 'Option1'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaImplicitReceiverValue:
        symbol = /MyEnum
        type = MyEnum.Companion
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = Option1
        receiverType = null
        returnType = MyEnum
        symbol = /MyEnum.Option1
        contextParameters = []
        callableId = /MyEnum.Option1
      typeArgumentsMapping = {}

KtProperty(270,306): 'val EnumOptionAlias = MyEnum.Option1'
  null

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

KtNameReferenceExpression(292,298): 'MyEnum'
  null

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

KtNamedFunction(308,336): 'fun fun1(): MyEnum = Option1'
  null

KtParameterList(316,318): '()'
  null

KtTypeReference(320,326): 'MyEnum'
  null

KtUserType(320,326): 'MyEnum'
  null

KtNameReferenceExpression(320,326): 'MyEnum'
  null

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

KtNamedFunction(337,366): 'fun fun2(): MyEnum = enumProp'
  null

KtParameterList(345,347): '()'
  null

KtTypeReference(349,355): 'MyEnum'
  null

KtUserType(349,355): 'MyEnum'
  null

KtNameReferenceExpression(349,355): 'MyEnum'
  null

KtNameReferenceExpression(358,366): 'enumProp'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = enumProp
        isSafeNavigation = false
        type = MyEnum.Companion
      extensionReceiver = null
      isContextSensitive = true
      kind = Read
      signature = KaVariableSignature:
        name = enumProp
        receiverType = null
        returnType = MyEnum
        symbol = val enumProp: MyEnum
        contextParameters = []
        callableId = /MyEnum.Companion.enumProp
      typeArgumentsMapping = {}

KtNamedFunction(367,398): 'fun fun3(): MyEnum = stringProp'
  null

KtParameterList(375,377): '()'
  null

KtTypeReference(379,385): 'MyEnum'
  null

KtUserType(379,385): 'MyEnum'
  null

KtNameReferenceExpression(379,385): 'MyEnum'
  null

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

KtProperty(400,450): 'val propWithGetterType'
  null

KtPropertyAccessor(427,450): 'get(): MyEnum = Option1'
  null

KtParameterList(430,432): '()'
  null

KtTypeReference(434,440): 'MyEnum'
  null

KtUserType(434,440): 'MyEnum'
  null

KtNameReferenceExpression(434,440): 'MyEnum'
  null

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

KtProperty(452,510): 'val wrongPropWithGetterType'
  null

KtPropertyAccessor(484,510): 'get(): MyEnum = stringProp'
  null

KtParameterList(487,489): '()'
  null

KtTypeReference(491,497): 'MyEnum'
  null

KtUserType(491,497): 'MyEnum'
  null

KtNameReferenceExpression(491,497): 'MyEnum'
  null

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

KtNamedFunction(512,589): 'fun fun4(b: Boolean): MyEnum {'
  null

KtParameterList(520,532): '(b: Boolean)'
  null

KtParameter(521,531): 'b: Boolean'
  null

KtTypeReference(524,531): 'Boolean'
  null

KtUserType(524,531): 'Boolean'
  null

KtNameReferenceExpression(524,531): 'Boolean'
  null

KtTypeReference(534,540): 'MyEnum'
  null

KtUserType(534,540): 'MyEnum'
  null

KtNameReferenceExpression(534,540): 'MyEnum'
  null

KtBlockExpression(541,589): '{'
  null

KtIfExpression(547,568): 'if (b) return Option1'
  null

KtContainerNode(551,552): 'b'
  null

KtNameReferenceExpression(551,552): 'b'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = b
        receiverType = null
        returnType = kotlin.Boolean
        symbol = b: kotlin.Boolean
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtContainerNodeForControlStructureBody(554,568): 'return Option1'
  null

KtReturnExpression(554,568): 'return Option1'
  null

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

KtReturnExpression(573,587): 'return Option2'
  null

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