KtFile: 'typeParameter.kt'
  null

KtPackageDirective(0,0): ''
  null

KtImportList(0,0): ''
  null

KtClass(78,188): 'sealed interface MySealed {'
  null

KtDeclarationModifierList(78,84): 'sealed'
  null

KtClassBody(104,188): '{'
  null

KtClass(110,145): 'class Left(val x: String): MySealed'
  null

KtPrimaryConstructor(120,135): '(val x: String)'
  null

KtParameterList(120,135): '(val x: String)'
  null

KtParameter(121,134): 'val x: String'
  null

KtTypeReference(128,134): 'String'
  null

KtUserType(128,134): 'String'
  null

KtNameReferenceExpression(128,134): 'String'
  null

KtSuperTypeList(137,145): 'MySealed'
  null

KtSuperTypeEntry(137,145): 'MySealed'
  null

KtTypeReference(137,145): 'MySealed'
  null

KtUserType(137,145): 'MySealed'
  null

KtNameReferenceExpression(137,145): 'MySealed'
  null

KtClass(150,186): 'class Right(val y: String): MySealed'
  null

KtPrimaryConstructor(161,176): '(val y: String)'
  null

KtParameterList(161,176): '(val y: String)'
  null

KtParameter(162,175): 'val y: String'
  null

KtTypeReference(169,175): 'String'
  null

KtUserType(169,175): 'String'
  null

KtNameReferenceExpression(169,175): 'String'
  null

KtSuperTypeList(178,186): 'MySealed'
  null

KtSuperTypeEntry(178,186): 'MySealed'
  null

KtTypeReference(178,186): 'MySealed'
  null

KtUserType(178,186): 'MySealed'
  null

KtNameReferenceExpression(178,186): 'MySealed'
  null

KtNamedFunction(190,276): 'fun <T : MySealed> T.getOrElse1() = when (this) {'
  null

KtTypeParameterList(194,208): '<T : MySealed>'
  null

KtTypeParameter(195,207): 'T : MySealed'
  null

KtTypeReference(199,207): 'MySealed'
  null

KtUserType(199,207): 'MySealed'
  null

KtNameReferenceExpression(199,207): 'MySealed'
  null

KtTypeReference(209,210): 'T'
  null

KtUserType(209,210): 'T'
  null

KtNameReferenceExpression(209,210): 'T'
  null

KtParameterList(221,223): '()'
  null

KtWhenExpression(226,276): 'when (this) {'
  null

KtThisExpression(232,236): 'this'
  null

KtNameReferenceExpression(232,236): 'this'
  null

KtWhenEntry(244,256): 'is Left -> x'
  null

KtWhenConditionIsPattern(244,251): 'is Left'
  null

KtTypeReference(247,251): 'Left'
  null

KtUserType(247,251): 'Left'
  null

KtNameReferenceExpression(247,251): 'Left'
  null

KtNameReferenceExpression(255,256): 'x'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaImplicitReceiverValue:
          symbol = KaReceiverParameterSymbol:
            anchorPsi: KtTypeReference
            annotations: []
            callableId: null
            contextParameters: []
            contextReceivers: []
            isActual: false
            isCompanion: false
            isDelegated: false
            isExpect: false
            isExtension: false
            isExternal: false
            isVal: true
            location: LOCAL
            modality: FINAL
            name: <receiver>
            origin: SOURCE
            owningCallableSymbol: KaNamedFunctionSymbol(/getOrElse1)
            psi: KtTypeReference
            realPsi: KtTypeReference
            receiverParameter: null
            returnType: KaTypeParameterType:
              annotations: []
              type: T
            typeParameters: []
            visibility: PUBLIC
          type = T
        type = it(MySealed.Left & T)
      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(261,274): 'is Right -> y'
  null

KtWhenConditionIsPattern(261,269): 'is Right'
  null

KtTypeReference(264,269): 'Right'
  null

KtUserType(264,269): 'Right'
  null

KtNameReferenceExpression(264,269): 'Right'
  null

KtNameReferenceExpression(273,274): 'y'
  KaCallResolutionSuccess:
    call = KaSimpleVariableAccessCall:
      contextArguments = []
      dispatchReceiver = KaSmartCastedReceiverValue:
        original = KaImplicitReceiverValue:
          symbol = KaReceiverParameterSymbol:
            anchorPsi: KtTypeReference
            annotations: []
            callableId: null
            contextParameters: []
            contextReceivers: []
            isActual: false
            isCompanion: false
            isDelegated: false
            isExpect: false
            isExtension: false
            isExternal: false
            isVal: true
            location: LOCAL
            modality: FINAL
            name: <receiver>
            origin: SOURCE
            owningCallableSymbol: KaNamedFunctionSymbol(/getOrElse1)
            psi: KtTypeReference
            realPsi: KtTypeReference
            receiverParameter: null
            returnType: KaTypeParameterType:
              annotations: []
              type: T
            typeParameters: []
            visibility: PUBLIC
          type = T
        type = it(MySealed.Right & T)
      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 = {}

KtNamedFunction(278,390): 'fun <T> T.getOrElse2() where T : MySealed, T : CharSequence = when (this) {'
  null

KtTypeParameterList(282,285): '<T>'
  null

KtTypeParameter(283,284): 'T'
  null

KtTypeReference(286,287): 'T'
  null

KtUserType(286,287): 'T'
  null

KtNameReferenceExpression(286,287): 'T'
  null

KtParameterList(298,300): '()'
  null

KtTypeConstraintList(307,337): 'T : MySealed, T : CharSequence'
  null

KtTypeConstraint(307,319): 'T : MySealed'
  null

KtNameReferenceExpression(307,308): 'T'
  null

KtTypeReference(311,319): 'MySealed'
  null

KtUserType(311,319): 'MySealed'
  null

KtNameReferenceExpression(311,319): 'MySealed'
  null

KtTypeConstraint(321,337): 'T : CharSequence'
  null

KtNameReferenceExpression(321,322): 'T'
  null

KtTypeReference(325,337): 'CharSequence'
  null

KtUserType(325,337): 'CharSequence'
  null

KtNameReferenceExpression(325,337): 'CharSequence'
  null

KtWhenExpression(340,390): 'when (this) {'
  null

KtThisExpression(346,350): 'this'
  null

KtNameReferenceExpression(346,350): 'this'
  null

KtWhenEntry(358,370): 'is Left -> x'
  null

KtWhenConditionIsPattern(358,365): 'is Left'
  null

KtTypeReference(361,365): 'Left'
  null

KtUserType(361,365): 'Left'
  null

KtNameReferenceExpression(361,365): 'Left'
  null

KtNameReferenceExpression(369,370): 'x'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'x'.>

KtWhenEntry(375,388): 'is Right -> y'
  null

KtWhenConditionIsPattern(375,383): 'is Right'
  null

KtTypeReference(378,383): 'Right'
  null

KtUserType(378,383): 'Right'
  null

KtNameReferenceExpression(378,383): 'Right'
  null

KtNameReferenceExpression(387,388): 'y'
  KaCallResolutionError:
    candidateCalls = []
    diagnostic = ERROR<UNRESOLVED_REFERENCE: Unresolved reference 'y'.>
