KtFile: 'main.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(8,135): '// FILE: main.kt'
  null

KtDeclarationModifierList(25,31): 'sealed'
  null

KtClassBody(51,135): '{'
  null

KtClass(57,92): 'class Left(val x: String): MySealed'
  null

KtPrimaryConstructor(67,82): '(val x: String)'
  null

KtParameterList(67,82): '(val x: String)'
  null

KtParameter(68,81): 'val x: String'
  null

KtTypeReference(75,81): 'String'
  null

KtUserType(75,81): 'String'
  null

KtNameReferenceExpression(75,81): 'String'
  null

KtSuperTypeList(84,92): 'MySealed'
  null

KtSuperTypeEntry(84,92): 'MySealed'
  null

KtTypeReference(84,92): 'MySealed'
  null

KtUserType(84,92): 'MySealed'
  null

KtNameReferenceExpression(84,92): 'MySealed'
  null

KtClass(97,133): 'class Right(val y: String): MySealed'
  null

KtPrimaryConstructor(108,123): '(val y: String)'
  null

KtParameterList(108,123): '(val y: String)'
  null

KtParameter(109,122): 'val y: String'
  null

KtTypeReference(116,122): 'String'
  null

KtUserType(116,122): 'String'
  null

KtNameReferenceExpression(116,122): 'String'
  null

KtSuperTypeList(125,133): 'MySealed'
  null

KtSuperTypeEntry(125,133): 'MySealed'
  null

KtTypeReference(125,133): 'MySealed'
  null

KtUserType(125,133): 'MySealed'
  null

KtNameReferenceExpression(125,133): 'MySealed'
  null

KtClass(137,163): 'interface MyGeneric<E1> {}'
  null

KtTypeParameterList(156,160): '<E1>'
  null

KtTypeParameter(157,159): 'E1'
  null

KtClassBody(161,163): '{}'
  null

KtClass(165,332): 'sealed interface MyGenericSealed<E2> : MyGeneric<E2> {'
  null

KtDeclarationModifierList(165,171): 'sealed'
  null

KtTypeParameterList(197,201): '<E2>'
  null

KtTypeParameter(198,200): 'E2'
  null

KtSuperTypeList(204,217): 'MyGeneric<E2>'
  null

KtSuperTypeEntry(204,217): 'MyGeneric<E2>'
  null

KtTypeReference(204,217): 'MyGeneric<E2>'
  null

KtUserType(204,217): 'MyGeneric<E2>'
  null

KtNameReferenceExpression(204,213): 'MyGeneric'
  null

KtTypeArgumentList(213,217): '<E2>'
  null

KtTypeProjection(214,216): 'E2'
  null

KtTypeReference(214,216): 'E2'
  null

KtUserType(214,216): 'E2'
  null

KtNameReferenceExpression(214,216): 'E2'
  null

KtClassBody(218,332): '{'
  null

KtClass(224,274): 'class Left(val x: String): MyGenericSealed<String>'
  null

KtPrimaryConstructor(234,249): '(val x: String)'
  null

KtParameterList(234,249): '(val x: String)'
  null

KtParameter(235,248): 'val x: String'
  null

KtTypeReference(242,248): 'String'
  null

KtUserType(242,248): 'String'
  null

KtNameReferenceExpression(242,248): 'String'
  null

KtSuperTypeList(251,274): 'MyGenericSealed<String>'
  null

KtSuperTypeEntry(251,274): 'MyGenericSealed<String>'
  null

KtTypeReference(251,274): 'MyGenericSealed<String>'
  null

KtUserType(251,274): 'MyGenericSealed<String>'
  null

KtNameReferenceExpression(251,266): 'MyGenericSealed'
  null

KtTypeArgumentList(266,274): '<String>'
  null

KtTypeProjection(267,273): 'String'
  null

KtTypeReference(267,273): 'String'
  null

KtUserType(267,273): 'String'
  null

KtNameReferenceExpression(267,273): 'String'
  null

KtClass(279,330): 'class Right(val y: String): MyGenericSealed<String>'
  null

KtPrimaryConstructor(290,305): '(val y: String)'
  null

KtParameterList(290,305): '(val y: String)'
  null

KtParameter(291,304): 'val y: String'
  null

KtTypeReference(298,304): 'String'
  null

KtUserType(298,304): 'String'
  null

KtNameReferenceExpression(298,304): 'String'
  null

KtSuperTypeList(307,330): 'MyGenericSealed<String>'
  null

KtSuperTypeEntry(307,330): 'MyGenericSealed<String>'
  null

KtTypeReference(307,330): 'MyGenericSealed<String>'
  null

KtUserType(307,330): 'MyGenericSealed<String>'
  null

KtNameReferenceExpression(307,322): 'MyGenericSealed'
  null

KtTypeArgumentList(322,330): '<String>'
  null

KtTypeProjection(323,329): 'String'
  null

KtTypeReference(323,329): 'String'
  null

KtUserType(323,329): 'String'
  null

KtNameReferenceExpression(323,329): 'String'
  null

KtNamedFunction(334,906): 'fun main(mg: MyGeneric<Any>, cs: CharSequence) {'
  null

KtParameterList(342,380): '(mg: MyGeneric<Any>, cs: CharSequence)'
  null

KtParameter(343,361): 'mg: MyGeneric<Any>'
  null

KtTypeReference(347,361): 'MyGeneric<Any>'
  null

KtUserType(347,361): 'MyGeneric<Any>'
  null

KtNameReferenceExpression(347,356): 'MyGeneric'
  null

KtTypeArgumentList(356,361): '<Any>'
  null

KtTypeProjection(357,360): 'Any'
  null

KtTypeReference(357,360): 'Any'
  null

KtUserType(357,360): 'Any'
  null

KtNameReferenceExpression(357,360): 'Any'
  null

KtParameter(363,379): 'cs: CharSequence'
  null

KtTypeReference(367,379): 'CharSequence'
  null

KtUserType(367,379): 'CharSequence'
  null

KtNameReferenceExpression(367,379): 'CharSequence'
  null

KtBlockExpression(381,906): '{'
  null

KtWhenExpression(387,478): 'when (val foo = JavaClass.foo()) {'
  null

KtProperty(393,418): 'val foo = JavaClass.foo()'
  null

KtDotQualifiedExpression(403,418): 'JavaClass.foo()'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = JavaClass
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MySealed!
        symbol = /JavaClass.foo(): MySealed!
        valueParameters = []
        contextParameters = []
        callableId = /JavaClass.foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {}

KtNameReferenceExpression(403,412): 'JavaClass'
  null

KtCallExpression(413,418): 'foo()'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = JavaClass
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MySealed!
        symbol = /JavaClass.foo(): MySealed!
        valueParameters = []
        contextParameters = []
        callableId = /JavaClass.foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {}

KtNameReferenceExpression(413,416): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleFunctionCall:
      contextArgumentMapping = {}
      contextArguments = []
      dispatchReceiver = KaExplicitReceiverValue:
        expression = JavaClass
        isSafeNavigation = false
        type = kotlin.Unit
      extensionReceiver = null
      signature = KaFunctionSignature:
        receiverType = null
        returnType = MySealed!
        symbol = /JavaClass.foo(): MySealed!
        valueParameters = []
        contextParameters = []
        callableId = /JavaClass.foo
      typeArgumentsMapping = {}
      valueArgumentMapping = {}

KtValueArgumentList(416,418): '()'
  null

KtWhenEntry(430,446): 'is Left -> foo.x'
  null

KtWhenConditionIsPattern(430,437): 'is Left'
  null

KtTypeReference(433,437): 'Left'
  null

KtUserType(433,437): 'Left'
  null

KtNameReferenceExpression(433,437): 'Left'
  null

KtDotQualifiedExpression(441,446): 'foo.x'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = foo
          isSafeNavigation = false
          type = MySealed!
        type = MySealed.Left
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = x
        receiverType = null
        returnType = kotlin.String
        symbol = val x: kotlin.String
        contextParameters = []
        callableId = /MySealed.Left.x
      typeArgumentsMapping = {}

KtNameReferenceExpression(441,444): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = foo
        receiverType = null
        returnType = MySealed!
        symbol = val foo: MySealed!
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtNameReferenceExpression(445,446): 'x'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = foo
          isSafeNavigation = false
          type = MySealed!
        type = MySealed.Left
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = x
        receiverType = null
        returnType = kotlin.String
        symbol = val x: kotlin.String
        contextParameters = []
        callableId = /MySealed.Left.x
      typeArgumentsMapping = {}

KtWhenEntry(455,472): 'is Right -> foo.y'
  null

KtWhenConditionIsPattern(455,463): 'is Right'
  null

KtTypeReference(458,463): 'Right'
  null

KtUserType(458,463): 'Right'
  null

KtNameReferenceExpression(458,463): 'Right'
  null

KtDotQualifiedExpression(467,472): 'foo.y'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = foo
          isSafeNavigation = false
          type = MySealed!
        type = MySealed.Right
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = y
        receiverType = null
        returnType = kotlin.String
        symbol = val y: kotlin.String
        contextParameters = []
        callableId = /MySealed.Right.y
      typeArgumentsMapping = {}

KtNameReferenceExpression(467,470): 'foo'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = foo
        receiverType = null
        returnType = MySealed!
        symbol = val foo: MySealed!
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtNameReferenceExpression(471,472): 'y'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = foo
          isSafeNavigation = false
          type = MySealed!
        type = MySealed.Right
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = y
        receiverType = null
        returnType = kotlin.String
        symbol = val y: kotlin.String
        contextParameters = []
        callableId = /MySealed.Right.y
      typeArgumentsMapping = {}

KtBinaryExpressionWithTypeRHS(583,612): 'mg as MyGenericSealed<String>'
  null

KtNameReferenceExpression(583,585): 'mg'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = mg
        receiverType = null
        returnType = MyGeneric<kotlin.Any>
        symbol = mg: MyGeneric<kotlin.Any>
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtOperationReferenceExpression(586,588): 'as'
  null

KtTypeReference(589,612): 'MyGenericSealed<String>'
  null

KtUserType(589,612): 'MyGenericSealed<String>'
  null

KtNameReferenceExpression(589,604): 'MyGenericSealed'
  null

KtTypeArgumentList(604,612): '<String>'
  null

KtTypeProjection(605,611): 'String'
  null

KtTypeReference(605,611): 'String'
  null

KtUserType(605,611): 'String'
  null

KtNameReferenceExpression(605,611): 'String'
  null

KtWhenExpression(617,683): 'when (mg) {'
  null

KtNameReferenceExpression(623,625): 'mg'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = mg
        receiverType = null
        returnType = MyGeneric<kotlin.Any>
        symbol = mg: MyGeneric<kotlin.Any>
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtWhenEntry(637,652): 'is Left -> mg.x'
  null

KtWhenConditionIsPattern(637,644): 'is Left'
  null

KtTypeReference(640,644): 'Left'
  null

KtUserType(640,644): 'Left'
  null

KtNameReferenceExpression(640,644): 'Left'
  null

KtDotQualifiedExpression(648,652): 'mg.x'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = mg
          isSafeNavigation = false
          type = MyGeneric<kotlin.Any>
        type = it(MyGenericSealed.Left & MyGeneric<kotlin.Any>)
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = x
        receiverType = null
        returnType = kotlin.String
        symbol = val x: kotlin.String
        contextParameters = []
        callableId = /MyGenericSealed.Left.x
      typeArgumentsMapping = {}

KtNameReferenceExpression(648,650): 'mg'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = mg
        receiverType = null
        returnType = MyGeneric<kotlin.Any>
        symbol = mg: MyGeneric<kotlin.Any>
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtNameReferenceExpression(651,652): 'x'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = mg
          isSafeNavigation = false
          type = MyGeneric<kotlin.Any>
        type = it(MyGenericSealed.Left & MyGeneric<kotlin.Any>)
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = x
        receiverType = null
        returnType = kotlin.String
        symbol = val x: kotlin.String
        contextParameters = []
        callableId = /MyGenericSealed.Left.x
      typeArgumentsMapping = {}

KtWhenEntry(661,677): 'is Right -> mg.y'
  null

KtWhenConditionIsPattern(661,669): 'is Right'
  null

KtTypeReference(664,669): 'Right'
  null

KtUserType(664,669): 'Right'
  null

KtNameReferenceExpression(664,669): 'Right'
  null

KtDotQualifiedExpression(673,677): 'mg.y'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = mg
          isSafeNavigation = false
          type = MyGeneric<kotlin.Any>
        type = it(MyGenericSealed.Right & MyGeneric<kotlin.Any>)
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = y
        receiverType = null
        returnType = kotlin.String
        symbol = val y: kotlin.String
        contextParameters = []
        callableId = /MyGenericSealed.Right.y
      typeArgumentsMapping = {}

KtNameReferenceExpression(673,675): 'mg'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = null
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = mg
        receiverType = null
        returnType = MyGeneric<kotlin.Any>
        symbol = mg: MyGeneric<kotlin.Any>
        contextParameters = []
        callableId = null
      typeArgumentsMapping = {}

KtNameReferenceExpression(676,677): 'y'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaExplicitReceiverValue:
          expression = mg
          isSafeNavigation = false
          type = MyGeneric<kotlin.Any>
        type = it(MyGenericSealed.Right & MyGeneric<kotlin.Any>)
      extensionReceiver = null
      isContextSensitive = false
      kind = Read
      signature = KaVariableSignature:
        name = y
        receiverType = null
        returnType = kotlin.String
        symbol = val y: kotlin.String
        contextParameters = []
        callableId = /MyGenericSealed.Right.y
      typeArgumentsMapping = {}

KtBinaryExpressionWithTypeRHS(804,833): 'cs as MyGenericSealed<String>'
  null

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

KtOperationReferenceExpression(807,809): 'as'
  null

KtTypeReference(810,833): 'MyGenericSealed<String>'
  null

KtUserType(810,833): 'MyGenericSealed<String>'
  null

KtNameReferenceExpression(810,825): 'MyGenericSealed'
  null

KtTypeArgumentList(825,833): '<String>'
  null

KtTypeProjection(826,832): 'String'
  null

KtTypeReference(826,832): 'String'
  null

KtUserType(826,832): 'String'
  null

KtNameReferenceExpression(826,832): 'String'
  null

KtWhenExpression(838,904): 'when (cs) {'
  null

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

KtWhenEntry(858,873): 'is Left -> cs.x'
  null

KtWhenConditionIsPattern(858,865): 'is Left'
  null

KtTypeReference(861,865): 'Left'
  null

KtUserType(861,865): 'Left'
  null

KtNameReferenceExpression(861,865): 'Left'
  null

KtDotQualifiedExpression(869,873): 'cs.x'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'x' on receiver of type 'MyGenericSealed<String> & CharSequence'.>

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

KtNameReferenceExpression(872,873): 'x'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'x' on receiver of type 'MyGenericSealed<String> & CharSequence'.>

KtWhenEntry(882,898): 'is Right -> cs.y'
  null

KtWhenConditionIsPattern(882,890): 'is Right'
  null

KtTypeReference(885,890): 'Right'
  null

KtUserType(885,890): 'Right'
  null

KtNameReferenceExpression(885,890): 'Right'
  null

KtDotQualifiedExpression(894,898): 'cs.y'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'y' on receiver of type 'MyGenericSealed<String> & CharSequence'.>

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

KtNameReferenceExpression(897,898): 'y'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'y' on receiver of type 'MyGenericSealed<String> & CharSequence'.>
