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;
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";
@@ -77,8 +77,8 @@ public abstract class AbstractDescriptorRendererTest : KotlinTestWithEnvironment
is JetFunctionType -> return
is JetNamedFunction ->
addCorrespondingParameterDescriptor(getDescriptor(declaringElement, resolveSession) as FunctionDescriptor, parameter)
is JetClass -> {
val jetClass: JetClass = declaringElement
is JetPrimaryConstructor -> {
val jetClass: JetClass = declaringElement.getContainingClass()
val classDescriptor = getDescriptor(jetClass, resolveSession) as ClassDescriptor
addCorrespondingParameterDescriptor(classDescriptor.getUnsubstitutedPrimaryConstructor(), parameter)
}
@@ -538,15 +538,33 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
}
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;
StringBuilder annotationsBuilder = new StringBuilder();
for (AnnotationDescriptor annotation : annotated.getAnnotations()) {
ClassDescriptor annotationClass = (ClassDescriptor) annotation.getType().getConstructor().getDeclarationDescriptor();
assert annotationClass != null;
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
@@ -972,6 +990,9 @@ public class DescriptorRendererImpl implements DescriptorRenderer {
if (!klass.getKind().isSingleton() && classWithPrimaryConstructor) {
ConstructorDescriptor primaryConstructor = klass.getUnsubstitutedPrimaryConstructor();
if (primaryConstructor != null) {
builder.append(" ");
renderAnnotations(primaryConstructor, builder, true);
renderVisibility(primaryConstructor.getVisibility(), builder);
renderValueParameters(primaryConstructor, builder);
}
}
@@ -196,6 +196,7 @@ message Class {
message PrimaryConstructor {
// If this field is present, it contains serialized data for the primary constructor.
// Otherwise it's default and can be created manually upon deserialization
// Note: currently only objects have default primary constructor
optional Callable data = 1;
}
@@ -20,8 +20,10 @@ import com.intellij.psi.PsiElement
import com.intellij.psi.stubs.StubElement
import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.MODALITY
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.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.KotlinPlaceHolderStubImpl
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 callableKind = Flags.CALLABLE_KIND[callableProto.getFlags()]
private val isConstructor = callableKind == ProtoBuf.Callable.CallableKind.CONSTRUCTOR
private val isPrimaryConstructor = isConstructor && parent is KotlinClassStubImpl
private val callableStub = doCreateCallableStub()
fun build() {
@@ -101,7 +104,7 @@ private class CallableClsStubBuilder(
val annotationIds = c.components.annotationLoader.loadCallableAnnotations(
protoContainer, callableProto, c.nameResolver, callableProto.annotatedCallableKind
)
createAnnotationStubs(annotationIds, modifierListStubImpl)
createAnnotationStubs(annotationIds, modifierListStubImpl, needWrappingAnnotationEntries = isPrimaryConstructor)
}
private fun doCreateCallableStub(): StubElement<out PsiElement> {
@@ -137,7 +140,10 @@ private class CallableClsStubBuilder(
)
}
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")
}
@@ -25,10 +25,7 @@ import org.jetbrains.kotlin.idea.decompiler.stubBuilder.FlagsToModifiers.VISIBIL
import org.jetbrains.kotlin.lexer.JetModifierKeywordToken
import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.psi.JetClassBody
import org.jetbrains.kotlin.psi.JetDelegationSpecifierList
import org.jetbrains.kotlin.psi.JetDelegatorToSuperClass
import org.jetbrains.kotlin.psi.JetParameterList
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.stubs.elements.JetClassElementType
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.KotlinClassStubImpl
@@ -139,15 +136,12 @@ private class ClassClsStubBuilder(
private fun createConstructorStub() {
if (!isClass() || !classProto.hasPrimaryConstructor()) return
val primaryConstructorProto = classProto.getPrimaryConstructor()
if (primaryConstructorProto.hasData()) {
typeStubBuilder.createValueParameterListStub(classOrObjectStub, primaryConstructorProto.getData(), ProtoContainer(classProto, null))
}
else {
//default empty constructor
KotlinPlaceHolderStubImpl<JetParameterList>(classOrObjectStub, JetStubElementTypes.VALUE_PARAMETER_LIST)
}
assert(classProto.getPrimaryConstructor().hasData(),
"Primary constructor in class is always non-default, so data should not be empty")
createCallableStub(classOrObjectStub, primaryConstructorProto.getData(), c, ProtoContainer(classProto, null))
}
private fun createDelegationSpecifierList() {
@@ -25,10 +25,7 @@ import org.jetbrains.kotlin.lexer.JetTokens
import org.jetbrains.kotlin.name.ClassId
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.name.Name
import org.jetbrains.kotlin.psi.JetConstructorCalleeExpression
import org.jetbrains.kotlin.psi.JetDotQualifiedExpression
import org.jetbrains.kotlin.psi.JetPackageDirective
import org.jetbrains.kotlin.psi.JetTypeReference
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.stubs.KotlinUserTypeStub
import org.jetbrains.kotlin.psi.stubs.elements.JetStubElementTypes
import org.jetbrains.kotlin.psi.stubs.impl.*
@@ -171,16 +168,28 @@ fun createModifierListStub(
)
}
fun createAnnotationStubs(annotationIds: List<ClassId>, modifierList: KotlinModifierListStubImpl) = annotationIds.forEach {
annotationClassId ->
val annotationEntryStubImpl = KotlinAnnotationEntryStubImpl(
modifierList,
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)
fun createAnnotationStubs(
annotationIds: List<ClassId>,
modifierList: KotlinModifierListStubImpl,
needWrappingAnnotationEntries: Boolean = false
) {
if (annotationIds.isEmpty()) return
val entriesParent =
if (needWrappingAnnotationEntries) KotlinPlaceHolderStubImpl<JetAnnotation>(modifierList, JetStubElementTypes.ANNOTATION)
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
@@ -3,7 +3,7 @@
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 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
internal final class ClassWithClassObject() {
internal final class ClassWithClassObject public () {
internal companion object {
internal final val a: test.A /* compiled code */
@@ -3,6 +3,6 @@
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 */ }
}
@@ -3,7 +3,7 @@
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
TWO
@@ -3,7 +3,7 @@
package test
internal abstract class FlexibleTypes() {
internal abstract class FlexibleTypes public () {
internal abstract val p: kotlin.Int /* platform type */
internal abstract fun collection(): kotlin.List<kotlin.Int> /* platform type */
@@ -3,7 +3,7 @@
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 <IP, R, P1> ((IP) -> R).compose(f: (P1) -> IP): (P1) -> R { /* compiled code */ }
@@ -3,25 +3,25 @@
package test
internal final class NestedClasses() {
internal final class NestedClasses public () {
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 */ }
private final inner class II() {
private final inner class II public () {
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 inner class NI() {
internal final inner class NI public () {
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 */ }
}
}
@@ -3,7 +3,7 @@
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 */ }
private constructor(x: kotlin.Int) { /* compiled code */ }
@@ -3,7 +3,7 @@
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 */
public final var b: dependency.B /* compiled code */
@@ -3,5 +3,5 @@
package testData.libraries
[[public abstract class AbstractClass() {
[[public abstract class AbstractClass public () {
}]]
@@ -3,7 +3,7 @@
package testData.libraries
[[public abstract class ClassWithAbstractAndOpenMembers() {
[[public abstract class ClassWithAbstractAndOpenMembers public () {
[public abstract val abstractVal: kotlin.String]
[public abstract var abstractVar: kotlin.String]
@@ -3,6 +3,6 @@
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 */]
}]]
@@ -3,7 +3,7 @@
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]]
[[GREEN]]
@@ -3,5 +3,5 @@
package testData.libraries
[[public final class SimpleClass() {
[[public final class SimpleClass public () {
}]]
@@ -3,5 +3,5 @@
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
[[public final class WithInnerAndObject() {
[[public final class WithInnerAndObject public () {
[[public companion object {
[internal final fun foo(): kotlin.Unit { /* compiled code */ }]
}]]
[[internal final class MyInner() {
[[internal final class MyInner public () {
[internal trait MyInnerInner {
[internal abstract fun innerInnerMethod(): kotlin.Unit]
}]
@@ -3,7 +3,7 @@
package testData.libraries
[[public final class WithTraitClassObject() {
[[public final class WithTraitClassObject public () {
[[public companion object : testData.libraries.SimpleTrait {
}]]
}]]
@@ -5,19 +5,21 @@ PsiJetFileStubImpl[package=test.a]
REFERENCE_EXPRESSION:[referencedName=a]
CLASS:[fqName=test.a.AnnotationClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=AnnotationClass, superNames=[Annotation]]
MODIFIER_LIST:[annotation public final]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
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) {
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 {
}
class Nested [a] private [b(E.E1) b(E.E2)] ()
}
annotation class a
@@ -7,31 +7,39 @@ PsiJetFileStubImpl[package=]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c1]
MODIFIER_LIST:[]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=a]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
VALUE_PARAMETER_LIST:
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]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c2]
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]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c2]
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]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS_BODY:
OBJECT_DECLARATION:[fqName=Annotations.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[private companion]
@@ -145,3 +153,25 @@ PsiJetFileStubImpl[package=]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
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]
CLASS:[fqName=test.ClassMembers, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassMembers, superNames=[]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p2]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p2]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p3]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p3]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p4]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p4]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p5]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=p5]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
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]
MODIFIER_LIST:[abstract internal]
@@ -5,7 +5,9 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=class_object]
CLASS:[fqName=test.class_object.ClassObject, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=ClassObject, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[public companion]
@@ -27,11 +29,15 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS:[fqName=test.class_object.ClassObject.Companion.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.Companion.A.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[internal final]
@@ -65,21 +71,27 @@ PsiJetFileStubImpl[package=test.class_object]
REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=test.class_object.ClassObject.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
OBJECT_DECLARATION:[fqName=test.class_object.ClassObject.B.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
MODIFIER_LIST:[internal companion]
CLASS_BODY:
CLASS:[fqName=test.class_object.ClassObject.B.Companion.C, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=C, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
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]
CLASS_BODY:
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]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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=[]]
MODIFIER_LIST:[internal companion]
@@ -101,7 +113,9 @@ PsiJetFileStubImpl[package=test.class_object]
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]]
MODIFIER_LIST:[annotation internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -112,7 +126,9 @@ PsiJetFileStubImpl[package=test.class_object]
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]]
MODIFIER_LIST:[enum internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -14,19 +14,21 @@ PsiJetFileStubImpl[package=a.b.c]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=data]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=i]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=j]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=String]
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]
MODIFIER_LIST:[internal final]
@@ -2,17 +2,19 @@ PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
CLASS:[fqName=Delegation, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Delegation, superNames=[T]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=a]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=A]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=a]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=A]
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.DependencyOnNestedClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=DependencyOnNestedClasses, superNames=[Nested]]
MODIFIER_LIST:[public final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -11,7 +11,9 @@ PsiJetFileStubImpl[package=a.b.c.test.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]]
MODIFIER_LIST:[enum internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.FlexibleTypes, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=FlexibleTypes, superNames=[]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[abstract internal]
@@ -3,17 +3,21 @@ PsiJetFileStubImpl[package=a]
REFERENCE_EXPRESSION:[referencedName=a]
CLASS:[fqName=a.InheritingClasses, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=InheritingClasses, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.A, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=A, superNames=[C]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Int]
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -63,7 +67,9 @@ PsiJetFileStubImpl[package=a]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS:[fqName=a.InheritingClasses.B, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=B, superNames=[A]]
MODIFIER_LIST:[open internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -140,7 +146,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.G, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=G, superNames=[B, C, D, E]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -184,19 +192,27 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritAny, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.ExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ExplicitAny, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.ImplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=ImplicitAny, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTrait, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTrait, superNames=[SomeTrait]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -211,7 +227,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.OnlyTraits, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=OnlyTraits, superNames=[SomeTrait, SomeTrait2]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -242,7 +260,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.TraitWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitWithExplicitAny, superNames=[Any, SomeTrait]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -263,7 +283,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritAny.TraitsWithExplicitAny, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=TraitsWithExplicitAny, superNames=[SomeTrait2, Any, SomeTrait]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -294,7 +316,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritExtensionFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritExtensionFunctionType, superNames=[]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -328,7 +352,9 @@ PsiJetFileStubImpl[package=a]
CLASS_BODY:
CLASS:[fqName=a.InheritingClasses.InheritFunctionType, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=InheritFunctionType, superNames=[]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.LocalClass, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=LocalClass, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[private final]
@@ -5,7 +5,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TOuter]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[internal final]
@@ -29,7 +31,9 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=TOuter]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
FUN:[fqName=test.NestedClasses.Inner.f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isProbablyNothingType=false, isTopLevel=false, name=f]
MODIFIER_LIST:[internal final]
@@ -47,7 +51,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[inner private final]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TII]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
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]
@@ -91,7 +97,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[private final]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TN]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[internal final]
@@ -119,7 +127,9 @@ PsiJetFileStubImpl[package=test]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=TN]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
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]
@@ -141,7 +151,9 @@ PsiJetFileStubImpl[package=test]
MODIFIER_LIST:[public final]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=TNN]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[internal final]
@@ -43,7 +43,9 @@ PsiJetFileStubImpl[package=]
REFERENCE_EXPRESSION:[referencedName=Unit]
CLASS:[fqName=Objects.NestedClass, isEnumEntry=false, isLocal=false, isTopLevel=false, isTrait=false, name=NestedClass, superNames=[]]
MODIFIER_LIST:[open internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
CLASS_BODY:
OBJECT_DECLARATION:[fqName=Objects.OtherObject, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=OtherObject, superNames=[NestedClass]]
MODIFIER_LIST:[public]
@@ -6,7 +6,9 @@ PsiJetFileStubImpl[package=p]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=true, isOutVariance=false, name=I]
MODIFIER_LIST:[in]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
MODIFIER_LIST:[private final]
@@ -3,13 +3,15 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]]
MODIFIER_LIST:[internal final]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Boolean]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Boolean]
CLASS_BODY:
SECONDARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
@@ -17,7 +17,9 @@ PsiJetFileStubImpl[package=test]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=T]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
DELEGATION_SPECIFIER_LIST:
DELEGATOR_SUPER_CLASS:
TYPE_REFERENCE:
@@ -45,7 +45,9 @@ PsiJetFileStubImpl[package=test]
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=kotlin]
REFERENCE_EXPRESSION:[referencedName=Any]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
TYPE_CONSTRAINT_LIST:
TYPE_CONSTRAINT:[isCompanionObjectConstraint=false]
REFERENCE_EXPRESSION:[referencedName=T1]
@@ -3,7 +3,9 @@ PsiJetFileStubImpl[package=test]
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.Types, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Types, superNames=[]]
MODIFIER_LIST:[abstract internal]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[public]
VALUE_PARAMETER_LIST:
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]
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=]
PACKAGE_DIRECTIVE:
CLASS:[fqName=Test, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=Test, superNames=[]]
VALUE_PARAMETER_LIST:
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
CLASS_BODY:
PROPERTY:[fqName=Test.test, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReceiverTypeRef=false, hasReturnTypeRef=false, isProbablyNothingType=false, isTopLevel=false, isVar=false, name=test]
ANONYMOUS_INITIALIZER:
@@ -2,17 +2,18 @@ PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.A, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=A, superNames=[]]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=test.A.b, hasDefaultValue=false, hasValOrVarNode=true, isMutable=false, name=b]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=test.A.c, hasDefaultValue=false, hasValOrVarNode=true, isMutable=true, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=justParam]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int]
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=test.A.b, hasDefaultValue=false, hasValOrVarNode=true, isMutable=false, name=b]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int]
VALUE_PARAMETER:[fqName=test.A.c, hasDefaultValue=false, hasValOrVarNode=true, isMutable=true, name=c]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=String]
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=justParam]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Int]
CLASS_BODY:
@@ -2,11 +2,12 @@ PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=SecondaryConstructors, superNames=[]]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Boolean]
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVarNode=false, isMutable=false, name=x]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Boolean]
CLASS_BODY:
ANONYMOUS_INITIALIZER:
SECONDARY_CONSTRUCTOR:
@@ -44,6 +44,12 @@ public class DecompiledTextTestGenerated extends AbstractDecompiledTextTest {
doTest(fileName);
}
@TestMetadata("AnnotationsOnPrimaryCtr")
public void testAnnotationsOnPrimaryCtr() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/decompiledText/AnnotationsOnPrimaryCtr/");
doTest(fileName);
}
@TestMetadata("ClassWithClassObject")
public void testClassWithClassObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/decompiler/decompiledText/ClassWithClassObject/");
@@ -60,6 +60,12 @@ public class StubBuilderTestGenerated extends AbstractStubBuilderTest {
doTest(fileName);
}
@TestMetadata("AnnotationsOnPrimaryCtr.kt")
public void testAnnotationsOnPrimaryCtr() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/AnnotationsOnPrimaryCtr.kt");
doTest(fileName);
}
@TestMetadata("AnonymousObject.kt")
public void testAnonymousObject() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/AnonymousObject.kt");