Adjust stub-builder, decompiler and renderer to new PSI structure

of primary ctor
This commit is contained in:
Denis Zharkov
2015-03-30 17:59:13 +03:00
parent 741c9febe2
commit 8e69c06e5a
53 changed files with 399 additions and 198 deletions
@@ -36,7 +36,7 @@ import org.jetbrains.kotlin.psi.stubs.impl.KotlinFileStubImpl;
import java.io.IOException; import java.io.IOException;
public class JetFileElementType extends IStubFileElementType<KotlinFileStub> { public class JetFileElementType extends IStubFileElementType<KotlinFileStub> {
public static final int STUB_VERSION = 40; public static final int STUB_VERSION = 41;
private static final String NAME = "kotlin.FILE"; private static final String NAME = "kotlin.FILE";
@@ -77,8 +77,8 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment
is JetFunctionType -> return is JetFunctionType -> return
is JetNamedFunction -> is JetNamedFunction ->
addCorrespondingParameterDescriptor(getDescriptor(declaringElement, resolveSession) as FunctionDescriptor, parameter) addCorrespondingParameterDescriptor(getDescriptor(declaringElement, resolveSession) as FunctionDescriptor, parameter)
is JetClass -> { is JetPrimaryConstructor -> {
val jetClass: JetClass = declaringElement val jetClass: JetClass = declaringElement.getContainingClass()
val classDescriptor = getDescriptor(jetClass, resolveSession) as ClassDescriptor val classDescriptor = getDescriptor(jetClass, resolveSession) as ClassDescriptor
addCorrespondingParameterDescriptor(classDescriptor.getUnsubstitutedPrimaryConstructor(), parameter) addCorrespondingParameterDescriptor(classDescriptor.getUnsubstitutedPrimaryConstructor(), parameter)
} }
@@ -538,15 +538,33 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
} }
private void renderAnnotations(@NotNull Annotated annotated, @NotNull StringBuilder builder) { private void renderAnnotations(@NotNull Annotated annotated, @NotNull StringBuilder builder) {
renderAnnotations(annotated, builder, false);
}
private void renderAnnotations(@NotNull Annotated annotated, @NotNull StringBuilder builder, boolean needBrackets) {
if (!modifiers.contains(Modifier.ANNOTATIONS)) return; if (!modifiers.contains(Modifier.ANNOTATIONS)) return;
StringBuilder annotationsBuilder = new StringBuilder();
for (AnnotationDescriptor annotation : annotated.getAnnotations()) { for (AnnotationDescriptor annotation : annotated.getAnnotations()) {
ClassDescriptor annotationClass = (ClassDescriptor) annotation.getType().getConstructor().getDeclarationDescriptor(); ClassDescriptor annotationClass = (ClassDescriptor) annotation.getType().getConstructor().getDeclarationDescriptor();
assert annotationClass != null; assert annotationClass != null;
if (!excludedAnnotationClasses.contains(DescriptorUtils.getFqNameSafe(annotationClass))) { if (!excludedAnnotationClasses.contains(DescriptorUtils.getFqNameSafe(annotationClass))) {
builder.append(renderAnnotation(annotation)).append(" "); annotationsBuilder.append(renderAnnotation(annotation)).append(" ");
} }
} }
if (!needBrackets) {
builder.append(annotationsBuilder);
}
else if (annotationsBuilder.length() > 0) {
// remove last whitespace
annotationsBuilder.setLength(annotationsBuilder.length() - 1);
builder.append("[");
builder.append(annotationsBuilder);
builder.append("] ");
}
} }
@Override @Override
@@ -972,6 +990,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
if (!klass.getKind().isSingleton() && classWithPrimaryConstructor) { if (!klass.getKind().isSingleton() && classWithPrimaryConstructor) {
ConstructorDescriptor primaryConstructor = klass.getUnsubstitutedPrimaryConstructor(); ConstructorDescriptor primaryConstructor = klass.getUnsubstitutedPrimaryConstructor();
if (primaryConstructor != null) { if (primaryConstructor != null) {
builder.append(" ");
renderAnnotations(primaryConstructor, builder, true);
renderVisibility(primaryConstructor.getVisibility(), builder);
renderValueParameters(primaryConstructor, builder); renderValueParameters(primaryConstructor, builder);
} }
} }
@@ -196,6 +196,7 @@ message Class {
message PrimaryConstructor { message PrimaryConstructor {
// If this field is present, it contains serialized data for the primary constructor. // If this field is present, it contains serialized data for the primary constructor.
// Otherwise it's default and can be created manually upon deserialization // Otherwise it's default and can be created manually upon deserialization
// Note: currently only objects have default primary constructor
optional Callable data = 1; optional Callable data = 1;
} }
@@ -20,8 +20,10 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.stubs.StubElement import com.intellij.psi.stubs.StubElement
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.MODALITY import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.MODALITY
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.VISIBILITY import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.VISIBILITY
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.psi.JetSecondaryConstructor import org.jetbrains.kotlin.psi.JetSecondaryConstructor
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.KotlinClassStubImpl
import org.jetbrains.kotlin.psi.stubs.impl.KotlinFunctionStubImpl import org.jetbrains.kotlin.psi.stubs.impl.KotlinFunctionStubImpl
import org.jetbrains.kotlin.psi.stubs.impl.KotlinPlaceHolderStubImpl import org.jetbrains.kotlin.psi.stubs.impl.KotlinPlaceHolderStubImpl
import org.jetbrains.kotlin.psi.stubs.impl.KotlinPropertyStubImpl import org.jetbrains.kotlin.psi.stubs.impl.KotlinPropertyStubImpl
@@ -66,6 +68,7 @@ private class CallableClsStubBuilder(
private val isTopLevel: Boolean get() = protoContainer.packageFqName != null private val isTopLevel: Boolean get() = protoContainer.packageFqName != null
private val callableKind = Flags.CALLABLE_KIND[callableProto.getFlags()] private val callableKind = Flags.CALLABLE_KIND[callableProto.getFlags()]
private val isConstructor = callableKind == ProtoBuf.Callable.CallableKind.CONSTRUCTOR private val isConstructor = callableKind == ProtoBuf.Callable.CallableKind.CONSTRUCTOR
private val isPrimaryConstructor = isConstructor && parent is KotlinClassStubImpl
private val callableStub = doCreateCallableStub() private val callableStub = doCreateCallableStub()
fun build() { fun build() {
@@ -101,7 +104,7 @@ private class CallableClsStubBuilder(
val annotationIds = c.components.annotationLoader.loadCallableAnnotations( val annotationIds = c.components.annotationLoader.loadCallableAnnotations(
protoContainer, callableProto, c.nameResolver, callableProto.annotatedCallableKind protoContainer, callableProto, c.nameResolver, callableProto.annotatedCallableKind
) )
createAnnotationStubs(annotationIds, modifierListStubImpl) createAnnotationStubs(annotationIds, modifierListStubImpl, needWrappingAnnotationEntries = isPrimaryConstructor)
} }
private fun doCreateCallableStub(): StubElement<out PsiElement> { private fun doCreateCallableStub(): StubElement<out PsiElement> {
@@ -137,7 +140,10 @@ private class CallableClsStubBuilder(
) )
} }
ProtoBuf.Callable.CallableKind.CONSTRUCTOR -> { ProtoBuf.Callable.CallableKind.CONSTRUCTOR -> {
KotlinPlaceHolderStubImpl<JetSecondaryConstructor>(parent, JetStubElementTypes.SECONDARY_CONSTRUCTOR) if (isPrimaryConstructor)
KotlinPlaceHolderStubImpl(parent, JetStubElementTypes.PRIMARY_CONSTRUCTOR)
else
KotlinPlaceHolderStubImpl(parent, JetStubElementTypes.SECONDARY_CONSTRUCTOR)
} }
else -> throw IllegalStateException("Unknown callable kind $callableKind") else -> throw IllegalStateException("Unknown callable kind $callableKind")
} }
@@ -25,10 +25,7 @@ import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.VISIBIL
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken import org.jetbrains.kotlin.lexer.JetModifierKeywordToken
import org.jetbrains.kotlin.lexer.JetTokens import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.JetClassBody import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.JetDelegationSpecifierList
import org.jetbrains.kotlin.psi.JetDelegatorToSuperClass
import org.jetbrains.kotlin.psi.JetParameterList
import org.jetbrains.kotlin.psi.stubs.elements.JetClassElementType import org.jetbrains.kotlin.psi.stubs.elements.JetClassElementType
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.KotlinClassStubImpl import org.jetbrains.kotlin.psi.stubs.impl.KotlinClassStubImpl
@@ -139,15 +136,12 @@ private class ClassClsStubBuilder(
private fun createConstructorStub() { private fun createConstructorStub() {
if (!isClass() || !classProto.hasPrimaryConstructor()) return if (!isClass() || !classProto.hasPrimaryConstructor()) return
val primaryConstructorProto = classProto.getPrimaryConstructor() val primaryConstructorProto = classProto.getPrimaryConstructor()
if (primaryConstructorProto.hasData()) {
typeStubBuilder.createValueParameterListStub(classOrObjectStub, primaryConstructorProto.getData(), ProtoContainer(classProto, null)) assert(classProto.getPrimaryConstructor().hasData(),
} "Primary constructor in class is always non-default, so data should not be empty")
else {
//default empty constructor createCallableStub(classOrObjectStub, primaryConstructorProto.getData(), c, ProtoContainer(classProto, null))
KotlinPlaceHolderStubImpl<JetParameterList>(classOrObjectStub, JetStubElementTypes.VALUE_PARAMETER_LIST)
}
} }
private fun createDelegationSpecifierList() { private fun createDelegationSpecifierList() {
@@ -25,10 +25,7 @@ import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.name.ClassId import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.JetConstructorCalleeExpression import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.JetDotQualifiedExpression
import org.jetbrains.kotlin.psi.JetPackageDirective
import org.jetbrains.kotlin.psi.JetTypeReference
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.* import org.jetbrains.kotlin.psi.stubs.impl.*
@@ -171,16 +168,28 @@ fun createModifierListStub(
) )
} }
fun createAnnotationStubs(annotationIds: List<ClassId>, modifierList: KotlinModifierListStubImpl) = annotationIds.forEach { fun createAnnotationStubs(
annotationClassId -> annotationIds: List<ClassId>,
val annotationEntryStubImpl = KotlinAnnotationEntryStubImpl( modifierList: KotlinModifierListStubImpl,
modifierList, needWrappingAnnotationEntries: Boolean = false
shortName = annotationClassId.getShortClassName().ref(), ) {
hasValueArguments = false if (annotationIds.isEmpty()) return
)
val constructorCallee = KotlinPlaceHolderStubImpl<JetConstructorCalleeExpression>(annotationEntryStubImpl, JetStubElementTypes.CONSTRUCTOR_CALLEE) val entriesParent =
val typeReference = KotlinPlaceHolderStubImpl<JetTypeReference>(constructorCallee, JetStubElementTypes.TYPE_REFERENCE) if (needWrappingAnnotationEntries) KotlinPlaceHolderStubImpl<JetAnnotation>(modifierList, JetStubElementTypes.ANNOTATION)
createStubForTypeName(annotationClassId, typeReference) else modifierList
annotationIds.forEach {
annotationClassId ->
val annotationEntryStubImpl = KotlinAnnotationEntryStubImpl(
entriesParent,
shortName = annotationClassId.getShortClassName().ref(),
hasValueArguments = false
)
val constructorCallee = KotlinPlaceHolderStubImpl<JetConstructorCalleeExpression>(annotationEntryStubImpl, JetStubElementTypes.CONSTRUCTOR_CALLEE)
val typeReference = KotlinPlaceHolderStubImpl<JetTypeReference>(constructorCallee, JetStubElementTypes.TYPE_REFERENCE)
createStubForTypeName(annotationClassId, typeReference)
}
} }
val ProtoBuf.Callable.annotatedCallableKind: AnnotatedCallableKind val ProtoBuf.Callable.annotatedCallableKind: AnnotatedCallableKind
@@ -3,7 +3,7 @@
package test package test
kotlin.data dependency.A dependency.B dependency.C internal final class Annotations() { kotlin.data dependency.A dependency.B dependency.C internal final class Annotations public () {
kotlin.inline dependency.A dependency.B dependency.C internal final val p: kotlin.Int /* compiled code */ kotlin.inline dependency.A dependency.B dependency.C internal final val p: kotlin.Int /* compiled code */
kotlin.inline dependency.A dependency.B dependency.C internal final fun f(dependency.A dependency.B dependency.C kotlin.deprecated i: kotlin.Int): kotlin.Unit { /* compiled code */ } kotlin.inline dependency.A dependency.B dependency.C internal final fun f(dependency.A dependency.B dependency.C kotlin.deprecated i: kotlin.Int): kotlin.Unit { /* compiled code */ }
@@ -0,0 +1,8 @@
// IntelliJ API Decompiler stub source generated from a class file
// Implementation of methods is not available
package test
internal final class AnnotationsOnPrimaryCtr [dependency.A dependency.B dependency.C] private () {
}
@@ -0,0 +1,5 @@
package test
import dependency.*
class AnnotationsOnPrimaryCtr [A("a")] private [B(1) C] ()
@@ -0,0 +1,5 @@
package dependency
annotation class A(val s: String)
annotation class B(val i: Int)
annotation class C
@@ -3,7 +3,7 @@
package test package test
internal final class ClassWithClassObject() { internal final class ClassWithClassObject public () {
internal companion object { internal companion object {
internal final val a: test.A /* compiled code */ internal final val a: test.A /* compiled code */
@@ -3,6 +3,6 @@
package test package test
public final class DependencyOnNestedClasses() : dependency.D.Nested { public final class DependencyOnNestedClasses public () : dependency.D.Nested {
internal final fun f(nc: dependency.D.Companion.NestedInClassObject, i: dependency.D.Inner, ii: dependency.D.Inner.Inner, nn: dependency.D.Nested.Nested): dependency.D.Nested { /* compiled code */ } internal final fun f(nc: dependency.D.Companion.NestedInClassObject, i: dependency.D.Inner, ii: dependency.D.Inner.Inner, nn: dependency.D.Nested.Nested): dependency.D.Nested { /* compiled code */ }
} }
@@ -3,7 +3,7 @@
package test package test
public final enum class Enum() : kotlin.Enum<test.Enum>, dependency.Tr { public final enum class Enum private () : kotlin.Enum<test.Enum>, dependency.Tr {
ONE ONE
TWO TWO
@@ -3,7 +3,7 @@
package test package test
internal abstract class FlexibleTypes() { internal abstract class FlexibleTypes public () {
internal abstract val p: kotlin.Int /* platform type */ internal abstract val p: kotlin.Int /* platform type */
internal abstract fun collection(): kotlin.List<kotlin.Int> /* platform type */ internal abstract fun collection(): kotlin.List<kotlin.Int> /* platform type */
@@ -3,7 +3,7 @@
package test package test
internal final class FunctionTypes() { internal final class FunctionTypes public () {
public final fun <A> (A.(A) -> A)?.bar(): kotlin.Unit { /* compiled code */ } public final fun <A> (A.(A) -> A)?.bar(): kotlin.Unit { /* compiled code */ }
public final fun <IP, R, P1> ((IP) -> R).compose(f: (P1) -> IP): (P1) -> R { /* compiled code */ } public final fun <IP, R, P1> ((IP) -> R).compose(f: (P1) -> IP): (P1) -> R { /* compiled code */ }
@@ -3,25 +3,25 @@
package test package test
internal final class NestedClasses() { internal final class NestedClasses public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
public final inner class Inner() { public final inner class Inner public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
private final inner class II() { private final inner class II public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
} }
} }
private final class Nested() { private final class Nested public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
internal final inner class NI() { internal final inner class NI public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
} }
public final class NN() { public final class NN public () {
internal final fun f(): kotlin.Unit { /* compiled code */ } internal final fun f(): kotlin.Unit { /* compiled code */ }
} }
} }
@@ -3,7 +3,7 @@
package test package test
internal final class SecondaryConstructors(x: kotlin.Boolean) { internal final class SecondaryConstructors public (x: kotlin.Boolean) {
test.anno public constructor(x: kotlin.String) { /* compiled code */ } test.anno public constructor(x: kotlin.String) { /* compiled code */ }
private constructor(x: kotlin.Int) { /* compiled code */ } private constructor(x: kotlin.Int) { /* compiled code */ }
@@ -3,7 +3,7 @@
package test package test
internal abstract class SimpleClass() : dependency.D<dependency.Tr, kotlin.Int>, dependency.Tr, kotlin.List<kotlin.String> { internal abstract class SimpleClass public () : dependency.D<dependency.Tr, kotlin.Int>, dependency.Tr, kotlin.List<kotlin.String> {
internal final val a: dependency.A /* compiled code */ internal final val a: dependency.A /* compiled code */
public final var b: dependency.B /* compiled code */ public final var b: dependency.B /* compiled code */
@@ -3,5 +3,5 @@
package testData.libraries package testData.libraries
[[public abstract class AbstractClass() { [[public abstract class AbstractClass public () {
}]] }]]
@@ -3,7 +3,7 @@
package testData.libraries package testData.libraries
[[public abstract class ClassWithAbstractAndOpenMembers() { [[public abstract class ClassWithAbstractAndOpenMembers public () {
[public abstract val abstractVal: kotlin.String] [public abstract val abstractVal: kotlin.String]
[public abstract var abstractVar: kotlin.String] [public abstract var abstractVar: kotlin.String]
@@ -3,6 +3,6 @@
package testData.libraries package testData.libraries
[[public final class ClassWithConstructor(a: kotlin.String, b: kotlin.Any) { [[public final class ClassWithConstructor public (a: kotlin.String, b: kotlin.Any) {
[internal final val a: kotlin.String /* compiled code */] [internal final val a: kotlin.String /* compiled code */]
}]] }]]
@@ -3,7 +3,7 @@
package testData.libraries package testData.libraries
[[public final enum class Color(rgb: kotlin.Int) : kotlin.Enum<testData.libraries.Color> { [[public final enum class Color private (rgb: kotlin.Int) : kotlin.Enum<testData.libraries.Color> {
[[RED]] [[RED]]
[[GREEN]] [[GREEN]]
@@ -3,5 +3,5 @@
package testData.libraries package testData.libraries
[[public final class SimpleClass() { [[public final class SimpleClass public () {
}]] }]]
@@ -3,5 +3,5 @@
package testData.libraries package testData.libraries
[[public final class SimpleTraitImpl() : testData.libraries.SimpleTrait { [[public final class SimpleTraitImpl public () : testData.libraries.SimpleTrait {
}]] }]]
@@ -3,12 +3,12 @@
package testData.libraries package testData.libraries
[[public final class WithInnerAndObject() { [[public final class WithInnerAndObject public () {
[[public companion object { [[public companion object {
[internal final fun foo(): kotlin.Unit { /* compiled code */ }] [internal final fun foo(): kotlin.Unit { /* compiled code */ }]
}]] }]]
[[internal final class MyInner() { [[internal final class MyInner public () {
[internal trait MyInnerInner { [internal trait MyInnerInner {
[internal abstract fun innerInnerMethod(): kotlin.Unit] [internal abstract fun innerInnerMethod(): kotlin.Unit]
}] }]
@@ -3,7 +3,7 @@
package testData.libraries package testData.libraries
[[public final class WithTraitClassObject() { [[public final class WithTraitClassObject public () {
[[public companion object : testData.libraries.SimpleTrait { [[public companion object : testData.libraries.SimpleTrait {
}]] }]]
}]] }]]
@@ -5,19 +5,21 @@ PsiJetFileStubImpl[package=test.a]
REFERENCE_EXPRESSION:[referencedName=a] REFERENCE_EXPRESSION:[referencedName=a]
CLASS:[fqName=test.a.AnnotationClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=AnnotationClass, superNames=[Annotation]] CLASS:[fqName=test.a.AnnotationClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=AnnotationClass, superNames=[Annotation]]
MODIFIER_LIST:[annotation public final] MODIFIER_LIST:[annotation public final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -1,4 +1,3 @@
//TODO: constructor modifiers are lost
a public class Annotations private [a] (private [a] val c1: Int, [a] val c2: Int) { a public class Annotations private [a] (private [a] val c1: Int, [a] val c2: Int) {
protected a fun f() { protected a fun f() {
@@ -20,6 +19,8 @@ a public class Annotations private [a] (private [a] val c1: Int, [a] val c2: Int
private b(E.E2) companion object { private b(E.E2) companion object {
} }
class Nested [a] private [b(E.E1) b(E.E2)] ()
} }
annotation class a annotation class a
@@ -7,31 +7,39 @@ PsiJetFileStubImpl[package=]
TYPE_REFERENCE: TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a] REFERENCE_EXPRESSION:[referencedName=a]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c1] MODIFIER_LIST:[private]
MODIFIER_LIST:[] ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a] ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
CONSTRUCTOR_CALLEE: CONSTRUCTOR_CALLEE:
TYPE_REFERENCE: TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a] REFERENCE_EXPRESSION:[referencedName=a]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c1]
MODIFIER_LIST:[]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c2] REFERENCE_EXPRESSION:[referencedName=Int]
MODIFIER_LIST:[] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c2]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a] MODIFIER_LIST:[]
CONSTRUCTOR_CALLEE: ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
TYPE_REFERENCE: CONSTRUCTOR_CALLEE:
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=a] USER_TYPE:[isAbsoluteInRootPackage=false]
TYPE_REFERENCE: REFERENCE_EXPRESSION:[referencedName=a]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=Annotations.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] OBJECT_DECLARATION:[fqName=Annotations.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[private companion] MODIFIER_LIST:[private companion]
@@ -145,3 +153,25 @@ PsiJetFileStubImpl[package=]
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Unit] REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=Annotations.Nested, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=Nested, superNames=[]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=b]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=b]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=b]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=b]
VALUE_PARAMETER_LIST:
CLASS_BODY:
@@ -3,37 +3,39 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.ClassMembers, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassMembers, superNames=[]] CLASS:[fqName=test.ClassMembers, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassMembers, superNames=[]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p2] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p2]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p3] REFERENCE_EXPRESSION:[referencedName=String]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p3]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p4] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p4]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p5] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p5]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.ClassMembers.abstractVar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=abstractVar] PROPERTY:[fqName=test.ClassMembers.abstractVar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=abstractVar]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
@@ -5,7 +5,9 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=class_object] REFERENCE_EXPRESSION:[referencedName=class_object]
CLASS:[fqName=test.class_object.ClassObject, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassObject, superNames=[]] CLASS:[fqName=test.class_object.ClassObject, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassObject, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[public companion] MODIFIER_LIST:[public companion]
@@ -27,11 +29,15 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=Int]
CLASS:[fqName=test.class_object.ClassObject.Companion.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[]] CLASS:[fqName=test.class_object.ClassObject.Companion.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.Companion.A.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]] CLASS:[fqName=test.class_object.ClassObject.Companion.A.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.class_object.ClassObject.Companion.A.B.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=i] PROPERTY:[fqName=test.class_object.ClassObject.Companion.A.B.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=i]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -65,21 +71,27 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=Unit] REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=test.class_object.ClassObject.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]] CLASS:[fqName=test.class_object.ClassObject.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[internal companion] MODIFIER_LIST:[internal companion]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.B.Companion.C, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=C, superNames=[]] CLASS:[fqName=test.class_object.ClassObject.B.Companion.C, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=C, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion.C.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion.C.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[internal companion] MODIFIER_LIST:[internal companion]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=D, superNames=[]] CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=D, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]] OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[internal companion] MODIFIER_LIST:[internal companion]
@@ -101,7 +113,9 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=Unit] REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.Anno, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=Anno, superNames=[Annotation]] CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.Anno, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=Anno, superNames=[Annotation]]
MODIFIER_LIST:[annotation internal final] MODIFIER_LIST:[annotation internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -112,7 +126,9 @@ PsiJetFileStubImpl[package=test.class_object]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.En, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=En, superNames=[Enum]] CLASS:[fqName=test.class_object.ClassObject.B.Companion.C.Companion.D.Companion.En, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=En, superNames=[Enum]]
MODIFIER_LIST:[enum internal final] MODIFIER_LIST:[enum internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -14,19 +14,21 @@ PsiJetFileStubImpl[package=a.b.c]
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=data] REFERENCE_EXPRESSION:[referencedName=data]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=a.b.c.DataClass.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=i] PROPERTY:[fqName=a.b.c.DataClass.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=i]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -2,17 +2,19 @@ PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE: PACKAGE_DIRECTIVE:
CLASS:[fqName=Delegation, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Delegation, superNames=[T]] CLASS:[fqName=Delegation, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Delegation, superNames=[T]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=a] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=a]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=A] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=A]
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.DependencyOnNestedClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=DependencyOnNestedClasses, superNames=[Nested]] CLASS:[fqName=test.DependencyOnNestedClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=DependencyOnNestedClasses, superNames=[Nested]]
MODIFIER_LIST:[public final] MODIFIER_LIST:[public final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -11,7 +11,9 @@ PsiJetFileStubImpl[package=a.b.c.test.enum]
REFERENCE_EXPRESSION:[referencedName=enum] REFERENCE_EXPRESSION:[referencedName=enum]
CLASS:[fqName=a.b.c.test.enum.Enum, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Enum, superNames=[Enum]] CLASS:[fqName=a.b.c.test.enum.Enum, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Enum, superNames=[Enum]]
MODIFIER_LIST:[enum internal final] MODIFIER_LIST:[enum internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.FlexibleTypes, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=FlexibleTypes, superNames=[]] CLASS:[fqName=test.FlexibleTypes, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=FlexibleTypes, superNames=[]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.FlexibleTypes.p, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=p] PROPERTY:[fqName=test.FlexibleTypes.p, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=p]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
@@ -3,17 +3,21 @@ PsiJetFileStubImpl[package=a]
REFERENCE_EXPRESSION:[referencedName=a] REFERENCE_EXPRESSION:[referencedName=a]
CLASS:[fqName=a.InheritingClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=InheritingClasses, superNames=[]] CLASS:[fqName=a.InheritingClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=InheritingClasses, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[C]] CLASS:[fqName=a.InheritingClasses.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[C]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -63,7 +67,9 @@ PsiJetFileStubImpl[package=a]
REFERENCE_EXPRESSION:[referencedName=Int] REFERENCE_EXPRESSION:[referencedName=Int]
CLASS:[fqName=a.InheritingClasses.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[A]] CLASS:[fqName=a.InheritingClasses.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[A]]
MODIFIER_LIST:[open internal] MODIFIER_LIST:[open internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -140,7 +146,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.G, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=G, superNames=[B, C, D, E]] CLASS:[fqName=a.InheritingClasses.G, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=G, superNames=[B, C, D, E]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -184,19 +192,27 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritAny, superNames=[]] CLASS:[fqName=a.InheritingClasses.InheritAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritAny, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.ExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ExplicitAny, superNames=[]] CLASS:[fqName=a.InheritingClasses.InheritAny.ExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ExplicitAny, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.ImplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ImplicitAny, superNames=[]] CLASS:[fqName=a.InheritingClasses.InheritAny.ImplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ImplicitAny, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTrait, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTrait, superNames=[SomeTrait]] CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTrait, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTrait, superNames=[SomeTrait]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -211,7 +227,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTraits, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTraits, superNames=[SomeTrait, SomeTrait2]] CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTraits, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTraits, superNames=[SomeTrait, SomeTrait2]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -242,7 +260,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.TraitWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitWithExplicitAny, superNames=[Any, SomeTrait]] CLASS:[fqName=a.InheritingClasses.InheritAny.TraitWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitWithExplicitAny, superNames=[Any, SomeTrait]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -263,7 +283,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.TraitsWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitsWithExplicitAny, superNames=[SomeTrait2, Any, SomeTrait]] CLASS:[fqName=a.InheritingClasses.InheritAny.TraitsWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitsWithExplicitAny, superNames=[SomeTrait2, Any, SomeTrait]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -294,7 +316,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritExtensionFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritExtensionFunctionType, superNames=[]] CLASS:[fqName=a.InheritingClasses.InheritExtensionFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritExtensionFunctionType, superNames=[]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -328,7 +352,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY: CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritFunctionType, superNames=[]] CLASS:[fqName=a.InheritingClasses.InheritFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritFunctionType, superNames=[]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.LocalClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=LocalClass, superNames=[]] CLASS:[fqName=test.LocalClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=LocalClass, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.LocalClass.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=bar] PROPERTY:[fqName=test.LocalClass.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=bar]
MODIFIER_LIST:[private final] MODIFIER_LIST:[private final]
@@ -5,7 +5,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST: TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter] TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.NestedClasses.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c] PROPERTY:[fqName=test.NestedClasses.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -29,7 +31,9 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE: TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=TOuter] REFERENCE_EXPRESSION:[referencedName=TOuter]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
FUN:[fqName=test.NestedClasses.Inner.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f] FUN:[fqName=test.NestedClasses.Inner.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -47,7 +51,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[inner private final] MODIFIER_LIST:[inner private final]
TYPE_PARAMETER_LIST: TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TII] TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TII]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
FUN:[fqName=test.NestedClasses.Inner.II.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f] FUN:[fqName=test.NestedClasses.Inner.II.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -91,7 +97,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[private final] MODIFIER_LIST:[private final]
TYPE_PARAMETER_LIST: TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TN] TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TN]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.NestedClasses.Nested.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c] PROPERTY:[fqName=test.NestedClasses.Nested.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -119,7 +127,9 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE: TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=TN] REFERENCE_EXPRESSION:[referencedName=TN]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
FUN:[fqName=test.NestedClasses.Nested.NI.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f] FUN:[fqName=test.NestedClasses.Nested.NI.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -141,7 +151,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[public final] MODIFIER_LIST:[public final]
TYPE_PARAMETER_LIST: TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TNN] TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TNN]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.NestedClasses.Nested.NN.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c] PROPERTY:[fqName=test.NestedClasses.Nested.NN.c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=c]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
@@ -43,7 +43,9 @@ PsiJetFileStubImpl[package=]
REFERENCE_EXPRESSION:[referencedName=Unit] REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=Objects.NestedClass, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=NestedClass, superNames=[]] CLASS:[fqName=Objects.NestedClass, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=NestedClass, superNames=[]]
MODIFIER_LIST:[open internal] MODIFIER_LIST:[open internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
OBJECT_DECLARATION:[fqName=Objects.OtherObject, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=OtherObject, superNames=[NestedClass]] OBJECT_DECLARATION:[fqName=Objects.OtherObject, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=OtherObject, superNames=[NestedClass]]
MODIFIER_LIST:[public] MODIFIER_LIST:[public]
@@ -6,7 +6,9 @@ PsiJetFileStubImpl[package=p]
TYPE_PARAMETER_LIST: TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=true, isOutVariance=false, name=I] TYPE_PARAMETER:[fqName=null, isInVariance=true, isOutVariance=false, name=I]
MODIFIER_LIST:[in] MODIFIER_LIST:[in]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=p.PrivateToThis.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=bar] PROPERTY:[fqName=p.PrivateToThis.bar, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=true, name=bar]
MODIFIER_LIST:[private final] MODIFIER_LIST:[private final]
@@ -3,13 +3,15 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]] CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]]
MODIFIER_LIST:[internal final] MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x] MODIFIER_LIST:[public]
TYPE_REFERENCE: VALUE_PARAMETER_LIST:
USER_TYPE:[isAbsoluteInRootPackage=false] VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Boolean] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Boolean]
CLASS_BODY: CLASS_BODY:
SECONDARY_CONSTRUCTOR: SECONDARY_CONSTRUCTOR:
MODIFIER_LIST:[public] MODIFIER_LIST:[public]
@@ -17,7 +17,9 @@ PsiJetFileStubImpl[package=test]
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=T] REFERENCE_EXPRESSION:[referencedName=T]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST: DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS: DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE: TYPE_REFERENCE:
@@ -45,7 +45,9 @@ PsiJetFileStubImpl[package=test]
USER_TYPE:[isAbsoluteInRootPackage=false] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin] REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Any] REFERENCE_EXPRESSION:[referencedName=Any]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
TYPE_CONSTRAINT_LIST: TYPE_CONSTRAINT_LIST:
TYPE_CONSTRAINT:[isCompanionObjectConstraint=false] TYPE_CONSTRAINT:[isCompanionObjectConstraint=false]
REFERENCE_EXPRESSION:[referencedName=T1] REFERENCE_EXPRESSION:[referencedName=T1]
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.Types, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Types, superNames=[]] CLASS:[fqName=test.Types, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Types, superNames=[]]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=test.Types.deepExtFunctionType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=deepExtFunctionType] PROPERTY:[fqName=test.Types.deepExtFunctionType, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReceiverTypeRef=false, hasReturnTypeRef=true, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=deepExtFunctionType]
MODIFIER_LIST:[abstract internal] MODIFIER_LIST:[abstract internal]
@@ -0,0 +1,23 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
CLASS:[fqName=A, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=A, superNames=[]]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Deprecated]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Deprecated]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Override]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Override]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Deprecated]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Deprecated]
VALUE_PARAMETER_LIST:
@@ -0,0 +1 @@
class A [Deprecated] private [Override Deprecated] ()
@@ -1,7 +1,8 @@
PsiJetFileStubImpl[package=] PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE: PACKAGE_DIRECTIVE:
CLASS:[fqName=Test, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Test, superNames=[]] CLASS:[fqName=Test, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Test, superNames=[]]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
CLASS_BODY: CLASS_BODY:
PROPERTY:[fqName=Test.test, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReceiverTypeRef=false, hasReturnTypeRef=false, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=test] PROPERTY:[fqName=Test.test, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReceiverTypeRef=false, hasReturnTypeRef=false, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=test]
ANONYMOUS_INITIALIZER: ANONYMOUS_INITIALIZER:
@@ -2,17 +2,18 @@ PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE: PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.A, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=A, superNames=[]] CLASS:[fqName=test.A, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=A, superNames=[]]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=test.A.b, hasDefaultValue=false, hasValOrVarNode=true, isMutable=false, name=b] VALUE_PARAMETER_LIST:
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=test.A.b, hasDefaultValue=false, hasValOrVarNode=true, isMutable=false, name=b]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=Int] USER_TYPE:[isAbsoluteInRootPackage=false]
VALUE_PARAMETER:[fqName=test.A.c, hasDefaultValue=false, hasValOrVarNode=true, isMutable=true, name=c] REFERENCE_EXPRESSION:[referencedName=Int]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=test.A.c, hasDefaultValue=false, hasValOrVarNode=true, isMutable=true, name=c]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=String] USER_TYPE:[isAbsoluteInRootPackage=false]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=justParam] REFERENCE_EXPRESSION:[referencedName=String]
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=justParam]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=Int] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS_BODY: CLASS_BODY:
@@ -2,11 +2,12 @@ PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE: PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test] REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]] CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]]
VALUE_PARAMETER_LIST: PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x] VALUE_PARAMETER_LIST:
TYPE_REFERENCE: VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
USER_TYPE:[isAbsoluteInRootPackage=false] TYPE_REFERENCE:
REFERENCE_EXPRESSION:[referencedName=Boolean] USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Boolean]
CLASS_BODY: CLASS_BODY:
ANONYMOUS_INITIALIZER: ANONYMOUS_INITIALIZER:
SECONDARY_CONSTRUCTOR: SECONDARY_CONSTRUCTOR:
@@ -44,6 +44,12 @@ public class DecompiledTextTestGenerated extends AbstractDecompiledTextTest {
doTest(fileName); doTest(fileName);
} }
@TestMetadata("AnnotationsOnPrimaryCtr")
public void testAnnotationsOnPrimaryCtr() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/decompiledText/AnnotationsOnPrimaryCtr/");
doTest(fileName);
}
@TestMetadata("ClassWithClassObject") @TestMetadata("ClassWithClassObject")
public void testClassWithClassObject() throws Exception { public void testClassWithClassObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/decompiledText/ClassWithClassObject/"); String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/decompiledText/ClassWithClassObject/");
@@ -60,6 +60,12 @@ public class StubBuilderTestGenerated extends AbstractStubBuilderTest {
doTest(fileName); doTest(fileName);
} }
@TestMetadata("AnnotationsOnPrimaryCtr.kt")
public void testAnnotationsOnPrimaryCtr() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/AnnotationsOnPrimaryCtr.kt");
doTest(fileName);
}
@TestMetadata("AnonymousObject.kt") @TestMetadata("AnonymousObject.kt")
public void testAnonymousObject() throws Exception { public void testAnonymousObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/AnonymousObject.kt"); String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/AnonymousObject.kt");