PsiJetFileStubImpl[package=]
  PACKAGE_DIRECTIVE
  IMPORT_LIST
  CLASS[classId=/Foo, fqName=Foo, isClsStubCompiledToJvmDefaultImplementation=false, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Foo, superNames=[]]
    MODIFIER_LIST[abstract public]
    PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, hasNoExpressionBody=true, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=Foo]
      MODIFIER_LIST[public]
      VALUE_PARAMETER_LIST
        VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=fromConstructor]
          TYPE_REFERENCE
            USER_TYPE
              USER_TYPE
                REFERENCE_EXPRESSION[referencedName=kotlin]
              REFERENCE_EXPRESSION[referencedName=String]
    CLASS_BODY
      PROPERTY[fqName=Foo.fromConstructor, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=fromConstructor]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=Foo.defaultProperty, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=defaultProperty]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=Foo.defaultVariable, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=defaultVariable]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=Foo.customAccessorAndBackingField, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=customAccessorAndBackingField]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=false, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
            VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=value]
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=Foo.customGetter, hasBackingField=false, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=customGetter]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
      PROPERTY[fqName=Foo.customSetter, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=customSetter]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Int]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=false, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
            VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=value]
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=Int]
      PROPERTY[fqName=Foo.customGetterDelegation, hasBackingField=false, hasDelegate=true, hasDelegateExpression=true, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=customGetterDelegation]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
      PROPERTY[fqName=Foo.customGetterDelegationWithBackingField, hasBackingField=true, hasDelegate=true, hasDelegateExpression=true, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=customGetterDelegationWithBackingField]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
      PROPERTY[fqName=Foo.defaultGetterWithAnnotation, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=defaultGetterWithAnnotation]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=false, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
            ANNOTATION_ENTRY[hasValueArguments=false, shortName=Anno]
              CONSTRUCTOR_CALLEE
                TYPE_REFERENCE
                  USER_TYPE
                    USER_TYPE
                      REFERENCE_EXPRESSION[referencedName=Foo]
                    REFERENCE_EXPRESSION[referencedName=Anno]
      PROPERTY[fqName=Foo.defaultSetterWithAnotherVisibility, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=defaultSetterWithAnotherVisibility]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=false, mayHaveContract=false]
          MODIFIER_LIST[private final]
          VALUE_PARAMETER_LIST
            VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=value]
              TYPE_REFERENCE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=Foo.extensionProperty, hasBackingField=false, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=true, isTopLevel=false, isVar=false, name=extensionProperty]
        MODIFIER_LIST[public final]
        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]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
      PROPERTY[fqName=Foo.postponed, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=postponed]
        MODIFIER_LIST[public final]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Int]
        PROPERTY_ACCESSOR[hasBody=true, hasNoExpressionBody=true, isGetter=true, mayHaveContract=false]
          MODIFIER_LIST[public final]
          VALUE_PARAMETER_LIST
      PROPERTY[fqName=Foo.lateinitVariable, hasBackingField=true, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=true, name=lateinitVariable]
        MODIFIER_LIST[public final lateinit]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
      PROPERTY[fqName=Foo.abstractProperty, hasBackingField=false, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=abstractProperty]
        MODIFIER_LIST[abstract public]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=Int]
      FUN[fqName=Foo.getValue, hasBody=true, hasNoExpressionBody=true, hasTypeParameterListBeforeFunctionName=true, isExtension=true, isTopLevel=false, mayHaveContract=false, name=getValue]
        MODIFIER_LIST[public final operator]
        TYPE_PARAMETER_LIST
          TYPE_PARAMETER[fqName=null, isInVariance=false, isOutVariance=false, name=T]
        TYPE_REFERENCE
          USER_TYPE
            REFERENCE_EXPRESSION[referencedName=T]
        VALUE_PARAMETER_LIST
          VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=thisRef]
            TYPE_REFERENCE
              NULLABLE_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=Any]
          VALUE_PARAMETER[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=property]
            TYPE_REFERENCE
              USER_TYPE
                USER_TYPE
                  USER_TYPE
                    REFERENCE_EXPRESSION[referencedName=kotlin]
                  REFERENCE_EXPRESSION[referencedName=reflect]
                REFERENCE_EXPRESSION[referencedName=KProperty]
                TYPE_ARGUMENT_LIST
                  TYPE_PROJECTION[projectionKind=STAR]
        TYPE_REFERENCE
          USER_TYPE
            USER_TYPE
              REFERENCE_EXPRESSION[referencedName=kotlin]
            REFERENCE_EXPRESSION[referencedName=String]
      CLASS[classId=/Foo.Anno, fqName=Foo.Anno, isClsStubCompiledToJvmDefaultImplementation=false, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Anno, superNames=[Annotation]]
        MODIFIER_LIST[public final annotation]
        PRIMARY_CONSTRUCTOR[fqName=null, hasBody=false, hasNoExpressionBody=true, isDelegatedCallToThis=false, isExplicitDelegationCall=false, isExtension=false, isTopLevel=false, mayHaveContract=false, name=Anno]
          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
