Implement stub building for inner types
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
// IntelliJ API Decompiler stub source generated from a class file
|
||||
// Implementation of methods is not available
|
||||
|
||||
package test
|
||||
|
||||
public final class InnerClasses<E, F> public constructor() {
|
||||
public final fun bar(x: test.InnerClasses<kotlin.String, kotlin.Double>.Inner2, y: test.InnerClasses<E, F>.Inner2): kotlin.Unit { /* compiled code */ }
|
||||
|
||||
public final inner class Inner<G, H> public constructor() {
|
||||
public final inner class Inner3<I> public constructor() {
|
||||
public final fun foo(x: test.InnerClasses<kotlin.String, F>.Inner<G, kotlin.Int>, y: test.InnerClasses<E, F>.Inner<E, kotlin.Double>, z: test.InnerClasses<kotlin.String, F>.Inner<G, kotlin.Int>.Inner3<kotlin.Double>, w: test.InnerClasses<E, F>.Inner<G, H>.Inner3<*>): kotlin.Unit { /* compiled code */ }
|
||||
}
|
||||
}
|
||||
|
||||
public final inner class Inner2 public constructor() {
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package test
|
||||
|
||||
class InnerClasses<E, F> {
|
||||
inner class Inner<G, H> {
|
||||
inner class Inner3<I> {
|
||||
fun foo(
|
||||
x: InnerClasses<String, F>.Inner<G, Int>,
|
||||
y: Inner<E, Double>,
|
||||
z: InnerClasses<String, F>.Inner<G, Int>.Inner3<Double>,
|
||||
w: Inner3<*>) {}
|
||||
}
|
||||
}
|
||||
|
||||
inner class Inner2
|
||||
|
||||
fun bar(x: InnerClasses<String, Double>.Inner2, y: Inner2) {}
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
// TODO Remove this restriction when nested classes will be supported in js backend.
|
||||
// See KT-1907 Support nested classes in js-backend
|
||||
// https://youtrack.jetbrains.com/issue/KT-1907
|
||||
// TARGET_BACKEND: JVM
|
||||
@@ -0,0 +1,17 @@
|
||||
package test
|
||||
|
||||
class InnerTypes<E, F> {
|
||||
inner class Inner<G, H> {
|
||||
inner class Inner3<I> {
|
||||
fun foo(
|
||||
x: InnerTypes<String, F>.Inner<G, Int>,
|
||||
y: Inner<E, Double>,
|
||||
z: InnerTypes<String, F>.Inner<G, Int>.Inner3<Double>,
|
||||
w: Inner3<*>) {}
|
||||
}
|
||||
}
|
||||
|
||||
inner class Inner2
|
||||
|
||||
fun bar(x: InnerTypes<String, Double>.Inner2, y: Inner2) {}
|
||||
}
|
||||
@@ -0,0 +1,217 @@
|
||||
PsiJetFileStubImpl[package=test]
|
||||
PACKAGE_DIRECTIVE:
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
IMPORT_LIST:
|
||||
CLASS:[fqName=test.InnerTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=InnerTypes, superNames=[]]
|
||||
MODIFIER_LIST:[public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=E]
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=F]
|
||||
PRIMARY_CONSTRUCTOR:
|
||||
MODIFIER_LIST:[public]
|
||||
VALUE_PARAMETER_LIST:
|
||||
CLASS_BODY:
|
||||
FUN:[fqName=test.InnerTypes.bar, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=bar]
|
||||
MODIFIER_LIST:[public final]
|
||||
VALUE_PARAMETER_LIST:
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=String]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Double]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner2]
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=y]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=E]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=F]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner2]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Unit]
|
||||
CLASS:[fqName=test.InnerTypes.Inner, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner, superNames=[]]
|
||||
MODIFIER_LIST:[inner public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=G]
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=H]
|
||||
PRIMARY_CONSTRUCTOR:
|
||||
MODIFIER_LIST:[public]
|
||||
VALUE_PARAMETER_LIST:
|
||||
CLASS_BODY:
|
||||
CLASS:[fqName=test.InnerTypes.Inner.Inner3, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner3, superNames=[]]
|
||||
MODIFIER_LIST:[inner public final]
|
||||
TYPE_PARAMETER_LIST:
|
||||
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=I]
|
||||
PRIMARY_CONSTRUCTOR:
|
||||
MODIFIER_LIST:[public]
|
||||
VALUE_PARAMETER_LIST:
|
||||
CLASS_BODY:
|
||||
FUN:[fqName=test.InnerTypes.Inner.Inner3.foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=foo]
|
||||
MODIFIER_LIST:[public final]
|
||||
VALUE_PARAMETER_LIST:
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=x]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=String]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=F]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Int]
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=y]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=E]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=F]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=E]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Double]
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=z]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=String]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=F]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Int]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner3]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Double]
|
||||
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=w]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=InnerTypes]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=E]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=F]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=G]
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=H]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner3]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=STAR]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=kotlin]
|
||||
REFERENCE_EXPRESSION:[referencedName=Unit]
|
||||
CLASS:[fqName=test.InnerTypes.Inner2, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=Inner2, superNames=[]]
|
||||
MODIFIER_LIST:[inner public final]
|
||||
PRIMARY_CONSTRUCTOR:
|
||||
MODIFIER_LIST:[public]
|
||||
VALUE_PARAMETER_LIST:
|
||||
CLASS_BODY:
|
||||
@@ -71,7 +71,17 @@ PsiJetFileStubImpl[package=test]
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=test]
|
||||
REFERENCE_EXPRESSION:[referencedName=NestedClasses]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=TOuter]
|
||||
REFERENCE_EXPRESSION:[referencedName=Inner]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
TYPE_REFERENCE:
|
||||
USER_TYPE:[isAbsoluteInRootPackage=false]
|
||||
REFERENCE_EXPRESSION:[referencedName=TI]
|
||||
REFERENCE_EXPRESSION:[referencedName=II]
|
||||
TYPE_ARGUMENT_LIST:
|
||||
TYPE_PROJECTION:[projectionKind=NONE]
|
||||
|
||||
Reference in New Issue
Block a user