PsiJetFileStubImpl[package=test]
  PACKAGE_DIRECTIVE
    REFERENCE_EXPRESSION[referencedName=test]
  IMPORT_LIST
  CLASS[fqName=test.Types, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Types, superNames=[]]
    MODIFIER_LIST[abstract public]
    PRIMARY_CONSTRUCTOR
      MODIFIER_LIST[public]
      VALUE_PARAMETER_LIST
    CLASS_BODY
      PROPERTY[fqName=test.Types.deepExtFunctionType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=deepExtFunctionType]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            FUNCTION_TYPE_RECEIVER
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  FUNCTION_TYPE
                    VALUE_PARAMETER_LIST
                      VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                        TYPE_REFERENCE
                          USER_TYPE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=kotlin]
                            REFERENCE_EXPRESSION[referencedName=Int]
                    TYPE_REFERENCE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=Int]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  NULLABLE_TYPE
                    USER_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=kotlin]
                      REFERENCE_EXPRESSION[referencedName=String]
            TYPE_REFERENCE
              NULLABLE_TYPE
                USER_TYPE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=collections]
                  REFERENCE_EXPRESSION[referencedName=List]
                  TYPE_ARGUMENT_LIST
                    TYPE_PROJECTION[projectionKind=NONE]
                      TYPE_REFERENCE
                        NULLABLE_TYPE
                          USER_TYPE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=kotlin]
                            REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.extFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFun]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            FUNCTION_TYPE_RECEIVER
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=Int]
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=kotlin]
                REFERENCE_EXPRESSION[referencedName=Unit]
      PROPERTY[fqName=test.Types.extFunction, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunction]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            FUNCTION_TYPE_RECEIVER
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
            VALUE_PARAMETER_LIST
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=collections]
                REFERENCE_EXPRESSION[referencedName=List]
                TYPE_ARGUMENT_LIST
                  TYPE_PROJECTION[projectionKind=NONE]
                    TYPE_REFERENCE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.extFunctionWithNullables, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunctionWithNullables]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            FUNCTION_TYPE_RECEIVER
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  NULLABLE_TYPE
                    USER_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=kotlin]
                      REFERENCE_EXPRESSION[referencedName=Int]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  NULLABLE_TYPE
                    USER_TYPE
                      USER_TYPE
                        REFERENCE_EXPRESSION[referencedName=kotlin]
                      REFERENCE_EXPRESSION[referencedName=String]
            TYPE_REFERENCE
              NULLABLE_TYPE
                USER_TYPE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=collections]
                  REFERENCE_EXPRESSION[referencedName=List]
                  TYPE_ARGUMENT_LIST
                    TYPE_PROJECTION[projectionKind=NONE]
                      TYPE_REFERENCE
                        NULLABLE_TYPE
                          USER_TYPE
                            USER_TYPE
                              REFERENCE_EXPRESSION[referencedName=kotlin]
                            REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.extFunctionWithParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=extFunctionWithParam]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            FUNCTION_TYPE_RECEIVER
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=String]
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=collections]
                REFERENCE_EXPRESSION[referencedName=List]
                TYPE_ARGUMENT_LIST
                  TYPE_PROJECTION[projectionKind=NONE]
                    TYPE_REFERENCE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.funTypeWithStarAndNonStar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=funTypeWithStarAndNonStar]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Function1]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=STAR]
              TYPE_PROJECTION[projectionKind=NONE]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=test.Types.function, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=function]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          FUNCTION_TYPE
            VALUE_PARAMETER_LIST
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=kotlin]
                REFERENCE_EXPRESSION[referencedName=Unit]
      PROPERTY[fqName=test.Types.functionWithParam, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=functionWithParam]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          FUNCTION_TYPE
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=String]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=collections]
                REFERENCE_EXPRESSION[referencedName=List]
                TYPE_ARGUMENT_LIST
                  TYPE_PROJECTION[projectionKind=NONE]
                    TYPE_REFERENCE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.list, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=list]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=collections]
            REFERENCE_EXPRESSION[referencedName=List]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=NONE]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=test.Types.listExtStarFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=listExtStarFun]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=collections]
            REFERENCE_EXPRESSION[referencedName=List]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=NONE]
                TYPE_REFERENCE
                  ANNOTATION_ENTRY[hasValueArguments=false, shortName=ExtensionFunctionType]
                    CONSTRUCTOR_CALLEE
                      TYPE_REFERENCE
                        USER_TYPE
                          USER_TYPE
                            REFERENCE_EXPRESSION[referencedName=kotlin]
                          REFERENCE_EXPRESSION[referencedName=ExtensionFunctionType]
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Function1]
                    TYPE_ARGUMENT_LIST
                      TYPE_PROJECTION[projectionKind=STAR]
                      TYPE_PROJECTION[projectionKind=STAR]
      PROPERTY[fqName=test.Types.map, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=map]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=collections]
            REFERENCE_EXPRESSION[referencedName=Map]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=NONE]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
              TYPE_PROJECTION[projectionKind=NONE]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=test.Types.nullable, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=nullable]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          NULLABLE_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=test.Types.nullableMap, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=nullableMap]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          NULLABLE_TYPE
            USER_TYPE
              USER_TYPE
                USER_TYPE
                  REFERENCE_EXPRESSION[referencedName=kotlin]
                REFERENCE_EXPRESSION[referencedName=collections]
              REFERENCE_EXPRESSION[referencedName=Map]
              TYPE_ARGUMENT_LIST
                TYPE_PROJECTION[projectionKind=NONE]
                  TYPE_REFERENCE
                    NULLABLE_TYPE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=Int]
                TYPE_PROJECTION[projectionKind=NONE]
                  TYPE_REFERENCE
                    NULLABLE_TYPE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=test.Types.projections, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=projections]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=collections]
            REFERENCE_EXPRESSION[referencedName=Map]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=IN]
                MODIFIER_LIST[in]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
              TYPE_PROJECTION[projectionKind=OUT]
                MODIFIER_LIST[out]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=test.Types.starFun, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=starFun]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Function1]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=STAR]
              TYPE_PROJECTION[projectionKind=STAR]
      PROPERTY[fqName=test.Types.starList, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=starList]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=collections]
            REFERENCE_EXPRESSION[referencedName=List]
            TYPE_ARGUMENT_LIST
              TYPE_PROJECTION[projectionKind=STAR]
      FUN[fqName=test.Types.functionTypeWithNamedArgs, hasBlockBody=true, hasBody=false, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=functionTypeWithNamedArgs]
        MODIFIER_LIST[abstract public]
        VALUE_PARAMETER_LIST
          VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=fType]
            TYPE_REFERENCE
              FUNCTION_TYPE
                VALUE_PARAMETER_LIST
                  VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                    TYPE_REFERENCE
                      USER_TYPE
                        USER_TYPE
                          REFERENCE_EXPRESSION[referencedName=kotlin]
                        REFERENCE_EXPRESSION[referencedName=String]
                  VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                    TYPE_REFERENCE
                      NULLABLE_TYPE
                        USER_TYPE
                          USER_TYPE
                            REFERENCE_EXPRESSION[referencedName=kotlin]
                          REFERENCE_EXPRESSION[referencedName=Any]
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=kotlin]
                    REFERENCE_EXPRESSION[referencedName=Int]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Unit]
      FUN[fqName=test.Types.extOnFunctionType, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, name=extOnFunctionType]
        MODIFIER_LIST[public final]
        TYPE_PARAMETER_LIST
          TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P1]
          TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P2]
          TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=P3]
          TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=R]
        TYPE_REFERENCE
          FUNCTION_TYPE
            VALUE_PARAMETER_LIST
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=P1]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=P2]
              VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=null]
                TYPE_REFERENCE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=P3]
            TYPE_REFERENCE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=R]
        VALUE_PARAMETER_LIST
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Unit]
