A.class:
  PsiJetFileStubImpl[package=]
    PACKAGE_DIRECTIVE
    IMPORT_LIST
    CLASS[classId=/A, fqName=A, isClsStubCompiledToJvmDefaultImplementation=false, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[Annotation]]
      MODIFIER_LIST[public final annotation]
        ANNOTATION_ENTRY[hasValueArguments=false, shortName=Target]
          CONSTRUCTOR_CALLEE
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=annotation]
                REFERENCE_EXPRESSION[referencedName=Target]
      PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, hasNoExpressionBody=true, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=A]
        MODIFIER_LIST[public]
        VALUE_PARAMETER_LIST
      SUPER_TYPE_LIST
        SUPER_TYPE_ENTRY
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Annotation]
      CLASS_BODY


AnnotationsOnNullableTypes.class:
  PsiJetFileStubImpl[package=]
    PACKAGE_DIRECTIVE
    IMPORT_LIST
    CLASS[classId=/AnnotationsOnNullableTypes, fqName=AnnotationsOnNullableTypes, isClsStubCompiledToJvmDefaultImplementation=false, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationsOnNullableTypes, superNames=[]]
      MODIFIER_LIST[public final]
      PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, hasNoExpressionBody=true, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=AnnotationsOnNullableTypes]
        MODIFIER_LIST[public]
        VALUE_PARAMETER_LIST
      CLASS_BODY
        PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaType, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaType]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            MODIFIER_LIST[]
              ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=A]
            NULLABLE_TYPE
              FUNCTION_TYPE
                VALUE_PARAMETER_LIST
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=C]
        PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaParameter, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaParameter]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            FUNCTION_TYPE
              VALUE_PARAMETER_LIST
                VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                  TYPE_REFERENCE
                    MODIFIER_LIST[]
                      ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                        CONSTRUCTOR_CALLEE
                          TYPE_REFERENCE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=A]
                    NULLABLE_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=C]
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=C]
        PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaReturnValue, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReturnValue]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            FUNCTION_TYPE
              VALUE_PARAMETER_LIST
              TYPE_REFERENCE
                MODIFIER_LIST[]
                  ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                    CONSTRUCTOR_CALLEE
                      TYPE_REFERENCE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=A]
                NULLABLE_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=C]
        PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaReceiver, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaReceiver]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            FUNCTION_TYPE
              FUNCTION_TYPE_RECEIVER
                TYPE_REFERENCE
                  MODIFIER_LIST[]
                    ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                      CONSTRUCTOR_CALLEE
                        TYPE_REFERENCE
                          USER_TYPE
                            REFERENCE_EXPRESSION[referencedName=A]
                  NULLABLE_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=C]
              VALUE_PARAMETER_LIST
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=C]
        PROPERTY[fqName=AnnotationsOnNullableTypes.lambdaTypeWithNullableReceiver, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=lambdaTypeWithNullableReceiver]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            MODIFIER_LIST[]
              ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=A]
            FUNCTION_TYPE
              FUNCTION_TYPE_RECEIVER
                TYPE_REFERENCE
                  NULLABLE_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=C]
              VALUE_PARAMETER_LIST
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=C]
        FUN[fqName=AnnotationsOnNullableTypes.receiverArgument, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=receiverArgument]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=B]
              TYPE_ARGUMENT_LIST
                TYPE_PROJECTION[projectionKind=NONE]
                  TYPE_REFERENCE
                    MODIFIER_LIST[]
                      ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                        CONSTRUCTOR_CALLEE
                          TYPE_REFERENCE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=A]
                    NULLABLE_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=C]
          VALUE_PARAMETER_LIST
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Unit]
        FUN[fqName=AnnotationsOnNullableTypes.parameter, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameter]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
            VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a]
              TYPE_REFERENCE
                MODIFIER_LIST[]
                  ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                    CONSTRUCTOR_CALLEE
                      TYPE_REFERENCE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=A]
                NULLABLE_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=C]
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Unit]
        FUN[fqName=AnnotationsOnNullableTypes.parameterArgument, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=parameterArgument]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
            VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=a]
              TYPE_REFERENCE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=B]
                  TYPE_ARGUMENT_LIST
                    TYPE_PROJECTION[projectionKind=NONE]
                      TYPE_REFERENCE
                        MODIFIER_LIST[]
                          ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                            CONSTRUCTOR_CALLEE
                              TYPE_REFERENCE
                                USER_TYPE
                                  REFERENCE_EXPRESSION[referencedName=A]
                        NULLABLE_TYPE
                          USER_TYPE
                            REFERENCE_EXPRESSION[referencedName=C]
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Unit]
        FUN[fqName=AnnotationsOnNullableTypes.returnValue, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnValue]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
          TYPE_REFERENCE
            MODIFIER_LIST[]
              ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=A]
            NULLABLE_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=C]
        FUN[fqName=AnnotationsOnNullableTypes.returnTypeParameterValue, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnTypeParameterValue]
          MODIFIER_LIST[public final]
          TYPE_PARAMETER_LIST
            TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T]
          VALUE_PARAMETER_LIST
          TYPE_REFERENCE
            MODIFIER_LIST[]
              ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=A]
            NULLABLE_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=T]
        FUN[fqName=AnnotationsOnNullableTypes.returnArgument, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=returnArgument]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
          TYPE_REFERENCE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=B]
              TYPE_ARGUMENT_LIST
                TYPE_PROJECTION[projectionKind=NONE]
                  TYPE_REFERENCE
                    MODIFIER_LIST[]
                      ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                        CONSTRUCTOR_CALLEE
                          TYPE_REFERENCE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=A]
                    NULLABLE_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=C]
        FUN[fqName=AnnotationsOnNullableTypes.functionWithAnnotatedReceiver, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=false, mayHaveContract=false, name=functionWithAnnotatedReceiver]
          MODIFIER_LIST[public final]
          TYPE_REFERENCE
            MODIFIER_LIST[]
              ANNOTATION_ENTRY[hasValueArguments=false, shortName=A]
                ANNOTATION_TARGET[useSiteTarget=RECEIVER]
                CONSTRUCTOR_CALLEE
                  TYPE_REFERENCE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=A]
            NULLABLE_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=C]
          VALUE_PARAMETER_LIST
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Unit]


B.class:
  PsiJetFileStubImpl[package=]
    PACKAGE_DIRECTIVE
    IMPORT_LIST
    CLASS[classId=/B, fqName=B, isClsStubCompiledToJvmDefaultImplementation=true, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=B, superNames=[]]
      MODIFIER_LIST[public]
      TYPE_PARAMETER_LIST
        TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T]
      CLASS_BODY


C.class:
  PsiJetFileStubImpl[package=]
    PACKAGE_DIRECTIVE
    IMPORT_LIST
    CLASS[classId=/C, fqName=C, isClsStubCompiledToJvmDefaultImplementation=true, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=C, superNames=[]]
      MODIFIER_LIST[public]
      CLASS_BODY
