Create import list psi element even if no directives are present

Fix a problem where deleting last import directive via "optimize imports" could lead to incorrect psi structure resulting in CCE, see EA-64291
New imports are inserted at the head (after package directive if present) of the file (before any comments) if no imports were present
Add test for inserting import to file where a first statement is a comment
Drop code dealing with non-existing import list in ImportInsertHelperImpl
AbstractQuickFixTest: check for unexpected actions before changes to the file are made as it relies on the first line having specific format
This commit is contained in:
Pavel V. Talanov
2015-06-08 15:13:33 +03:00
parent 4c4f730c53
commit 07d35d305e
461 changed files with 1275 additions and 472 deletions
+5
View File
@@ -0,0 +1,5 @@
// IMPORT: java.util.ArrayList
package p
// comment
fun foo() {}
+7
View File
@@ -0,0 +1,7 @@
// IMPORT: java.util.ArrayList
package p
import java.util.*
// comment
fun foo() {}
+4
View File
@@ -0,0 +1,4 @@
// IMPORT: java.util.ArrayList
// comment
fun foo() {}
@@ -0,0 +1,6 @@
import java.util.*
// IMPORT: java.util.ArrayList
// comment
fun foo() {}
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.AnnotatedFlexibleTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotatedFlexibleTypes, superNames=[]]
MODIFIER_LIST:[public final]
PRIMARY_CONSTRUCTOR:
@@ -3,6 +3,7 @@ PsiJetFileStubImpl[package=test.a]
DOT_QUALIFIED_EXPRESSION:
REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=a]
IMPORT_LIST:
CLASS:[fqName=test.a.AnnotationClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=AnnotationClass, superNames=[Annotation]]
MODIFIER_LIST:[annotation public final]
PRIMARY_CONSTRUCTOR:
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Annotations, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Annotations, superNames=[]]
MODIFIER_LIST:[public final]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.ClassMembers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=ClassMembers, superNames=[]]
MODIFIER_LIST:[abstract internal]
PRIMARY_CONSTRUCTOR:
@@ -3,6 +3,7 @@ PsiJetFileStubImpl[package=test.class_object]
DOT_QUALIFIED_EXPRESSION:
REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=class_object]
IMPORT_LIST:
CLASS:[fqName=test.class_object.ClassObject, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=ClassObject, superNames=[]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
@@ -5,6 +5,7 @@ PsiJetFileStubImpl[package=a.b.c]
REFERENCE_EXPRESSION:[referencedName=a]
REFERENCE_EXPRESSION:[referencedName=b]
REFERENCE_EXPRESSION:[referencedName=c]
IMPORT_LIST:
CLASS:[fqName=a.b.c.DataClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=DataClass, superNames=[]]
MODIFIER_LIST:[public final]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=data]
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Delegation, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Delegation, superNames=[T]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.DependencyOnNestedClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=DependencyOnNestedClasses, superNames=[Nested]]
MODIFIER_LIST:[public final]
PRIMARY_CONSTRUCTOR:
+1
View File
@@ -9,6 +9,7 @@ PsiJetFileStubImpl[package=a.b.c.test.enum]
REFERENCE_EXPRESSION:[referencedName=c]
REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=enum]
IMPORT_LIST:
CLASS:[fqName=a.b.c.test.enum.Enum, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Enum, superNames=[Enum]]
MODIFIER_LIST:[enum internal final]
PRIMARY_CONSTRUCTOR:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.FlexibleTypes, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=FlexibleTypes, superNames=[]]
MODIFIER_LIST:[abstract internal]
PRIMARY_CONSTRUCTOR:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=a]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=a]
IMPORT_LIST:
CLASS:[fqName=a.InheritingClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=InheritingClasses, superNames=[]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.LocalClass, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=LocalClass, superNames=[]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.NestedClasses, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=NestedClasses, superNames=[]]
MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST:
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
OBJECT_DECLARATION:[fqName=Objects, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=true, name=Objects, superNames=[]]
MODIFIER_LIST:[public]
CLASS_BODY:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=p]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=p]
IMPORT_LIST:
CLASS:[fqName=p.PrivateToThis, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=PrivateToThis, superNames=[]]
MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=SecondaryConstructors, superNames=[]]
MODIFIER_LIST:[internal final]
PRIMARY_CONSTRUCTOR:
@@ -7,6 +7,7 @@ PsiJetFileStubImpl[package=a.b.c.topLevelMembersAnnotated]
REFERENCE_EXPRESSION:[referencedName=b]
REFERENCE_EXPRESSION:[referencedName=c]
REFERENCE_EXPRESSION:[referencedName=topLevelMembersAnnotated]
IMPORT_LIST:
PROPERTY:[fqName=a.b.c.topLevelMembersAnnotated.i, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=i]
MODIFIER_LIST:[internal]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=a]
@@ -3,6 +3,7 @@ PsiJetFileStubImpl[package=foo.TopLevelMembers]
DOT_QUALIFIED_EXPRESSION:
REFERENCE_EXPRESSION:[referencedName=foo]
REFERENCE_EXPRESSION:[referencedName=TopLevelMembers]
IMPORT_LIST:
PROPERTY:[fqName=foo.TopLevelMembers.certainlyNothing, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=certainlyNothing]
MODIFIER_LIST:[private]
TYPE_REFERENCE:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.TypeBoundsAndDelegationSpecifiers, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeBoundsAndDelegationSpecifiers, superNames=[A, T]]
MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST:
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.TypeParams, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=TypeParams, superNames=[]]
MODIFIER_LIST:[internal final]
TYPE_PARAMETER_LIST:
+1
View File
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.Types, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Types, superNames=[]]
MODIFIER_LIST:[abstract internal]
PRIMARY_CONSTRUCTOR:
@@ -1,7 +1,7 @@
// WITH_RUNTIME
import java.net.URI
// WITH_RUNTIME
fun foo(): URI {
return java.io.File("x").toURI()
}
@@ -4,4 +4,4 @@ fun getEntry() : Map.Entry<kotlin.Array<String>, java.sql.Array> {
throw Error()
}
val <caret>x = getEntry()
val <caret>x = getEntry()
@@ -1,9 +1,9 @@
// WITH_RUNTIME
import java.sql
// WITH_RUNTIME
fun getEntry() : Map.Entry<kotlin.Array<String>, java.sql.Array> {
throw Error()
}
val x: Map.Entry<Array<String>, sql.Array> = getEntry()
val x: Map.Entry<Array<String>, sql.Array> = getEntry()
+2 -2
View File
@@ -1,8 +1,8 @@
import TestData.TestSample
// "Import" "true"
// ERROR: Unresolved reference: TestSample
import TestData.TestSample
fun test() {
val a = TestSample
}
@@ -1,8 +1,8 @@
import ppp.XXX
// "Import" "true"
// ERROR: Unresolved reference: XXX
import ppp.XXX
fun f() {
XXX { 1 }
}
+2 -2
View File
@@ -1,8 +1,8 @@
import importTrait.data.TestTrait
// "Import" "true"
// ERROR: Unresolved reference: TestTrait
import importTrait.data.TestTrait
fun test() {
val a = <caret>TestTrait
}
+2 -2
View File
@@ -1,6 +1,6 @@
import test.Test
// "Import" "true"
// ERROR: Unresolved reference: Nested
import test.Test
val a = <caret>Test.Nested
@@ -1,8 +1,8 @@
import java.util.LinkedHashSet
// "Add parameter to function 'foo'" "true"
// DISABLE-ERRORS
import java.util.LinkedHashSet
fun foo(x: Int, linkedHashSet: LinkedHashSet<Int>) {
foo(, java.util.LinkedHashSet<Int>());
foo(1, java.util.LinkedHashSet<Int>());
@@ -1,8 +1,8 @@
import kotlin.properties.ReadOnlyProperty
// "Create class 'Foo'" "true"
// ERROR: <html>Class 'Foo' must be declared abstract or implement abstract member<br/><b>public</b> <b>abstract</b> <b>fun</b> get(thisRef: A&lt;T&gt;, desc: kotlin.PropertyMetadata): B <i>defined in</i> kotlin.properties.ReadOnlyProperty</html>
import kotlin.properties.ReadOnlyProperty
open class B
class A<T>(val t: T) {
@@ -1,8 +1,8 @@
import kotlin.properties.ReadWriteProperty
// "Create class 'Foo'" "true"
// DISABLE-ERRORS
import kotlin.properties.ReadWriteProperty
open class B
class A<T>(val t: T) {
@@ -1,8 +1,8 @@
import kotlin.properties.ReadOnlyProperty
// "Create object 'Foo'" "true"
// DISABLE-ERRORS
import kotlin.properties.ReadOnlyProperty
open class B
class A {
@@ -1,8 +1,8 @@
import kotlin.properties.ReadWriteProperty
// "Create object 'Foo'" "true"
// DISABLE-ERRORS
import kotlin.properties.ReadWriteProperty
open class B
class A {
@@ -1,7 +1,7 @@
// "Create function 'foo'" "true"
import kotlin.properties.ReadOnlyProperty
// "Create function 'foo'" "true"
class A<T>(val t: T) {
val x: A<Int> by foo(t, "")
@@ -1,7 +1,7 @@
// "Create function 'foo'" "true"
import kotlin.properties.ReadWriteProperty
// "Create function 'foo'" "true"
class A<T>(val t: T) {
var x: A<Int> by foo(t, "")
@@ -1,7 +1,7 @@
// "Create extension function 'set'" "true"
import java.util.ArrayList
// "Create extension function 'set'" "true"
class Foo<T> {
fun <T> x (y: Any, w: java.util.ArrayList<T>) {
y["", w] = w
@@ -1,9 +1,9 @@
import kotlin.properties.ReadOnlyProperty
// "Create property 'foo'" "true"
// ERROR: Property must be initialized or be abstract
// ERROR: Variable 'foo' must be initialized
import kotlin.properties.ReadOnlyProperty
class A<T> {
private val foo: ReadOnlyProperty<A<T>, A<Int>>
val x: A<Int> by foo
@@ -1,9 +1,9 @@
import kotlin.properties.ReadWriteProperty
// "Create property 'foo'" "true"
// ERROR: Property must be initialized or be abstract
// ERROR: Variable 'foo' must be initialized
import kotlin.properties.ReadWriteProperty
class A<T> {
private val foo: ReadWriteProperty<A<T>, A<Int>>
var x: A<Int> by foo
@@ -1,12 +1,12 @@
// "Replace with 'newFun(java.io.File.separatorChar)'" "true"
import java.io.File
// "Replace with 'newFun(java.io.File.separatorChar)'" "true"
@deprecated("", ReplaceWith("newFun(java.io.File.separatorChar)"))
fun oldFun() { }
fun newFun(separator: Char){}
fun foo() {
<caret>newFun(File.separatorChar)
newFun(File.separatorChar)
}
@@ -1,7 +1,7 @@
// "Replace with 'newFun(this)'" "true"
import dependency.C
// "Replace with 'newFun(this)'" "true"
fun foo(c: dependency.C) {
C.<caret>newFun(c)
}
@@ -1,8 +1,8 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> in whole annotation" "true"
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann(val arg: Array<KClass<*>>)
Ann(arg = array(String::class, Double::class)) class MyClass
@@ -1,8 +1,8 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> in whole annotation" "true"
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann(val arg1: KClass<*>, val arg2: KClass<out Any?>)
Ann(String::class, Int::class) class MyClass
@@ -1,8 +1,8 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> in whole annotation" "true"
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann(
val arg1: Int,
val arg2: KClass<*> = Int::class,
@@ -1,8 +1,8 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> for each annotation in project" "true"
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann1(val arg: KClass<*>)
Ann1(String::class) class MyClass1
@@ -1,3 +1,5 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> in whole annotation" "true"
// ERROR: <html>Type inference failed. Expected type mismatch: <table><tr><td>required: </td><td><b>kotlin.reflect.KClass&lt;*&gt;</b></td></tr><tr><td>found: </td><td><font color=red><b>java.lang.Class&lt;???&gt;</b></font></td></tr></table></html>
// ERROR: <html>Type mismatch.<table><tr><td>Required:</td><td>kotlin.reflect.KClass&lt;*&gt;</td></tr><tr><td>Found:</td><td>java.lang.Class&lt;[ERROR : Err]&gt;</td></tr></table></html>
@@ -5,8 +7,6 @@
// ERROR: Unresolved reference: Err
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann(vararg val arg: KClass<*>)
Ann(String::class, javaClass<Err>()) class MyClass1
@@ -1,8 +1,8 @@
import kotlin.reflect.KClass
// "Replace Class<T> with KClass<T> in whole annotation" "true"
// WITH_RUNTIME
import kotlin.reflect.KClass
annotation class Ann(vararg val arg: KClass<*>)
Ann(String::class, Double::class, *array(Char::class)) class MyClass
@@ -1,8 +1,8 @@
import java.lang.Number
// "Replace javaClass<T>() with T::class in whole project" "true"
// WITH_RUNTIME
import java.lang.Number
Ann(arg = array(Int::class, String::class)) class MyClass1
Ann(arg = array<java.lang.Class<*>>(Number::class, String::class)) class MyClass2
@@ -1,6 +1,6 @@
import java.util.Random
// "Replace javaClass<T>() with T::class" "true"
// WITH_RUNTIME
import java.util.Random
Ann(A::class, A::class, *array(A::class), arg1 = A.B::class, arg2 = Random::class) class MyClass
@@ -1,6 +1,6 @@
import java.lang
// "Replace javaClass<T>() with T::class" "true"
// WITH_RUNTIME
import java.lang
Ann(String::class, x = 2, arg = (Int::class), args = array((Any::class), lang.String::class)) class MyClass
@@ -1,8 +1,8 @@
import java.lang
// "Replace javaClass<T>() with T::class" "true"
// WITH_RUNTIME
import java.lang
Ann(
String::class,
Int::class,
@@ -1,7 +1,7 @@
// "Change getter type to HashSet<Int>" "true"
import java.util.HashSet
// "Change getter type to HashSet<Int>" "true"
class A() {
val i: java.util.HashSet<Int>
get(): HashSet<Int> = java.util.LinkedHashSet<Int>()
@@ -1,8 +1,8 @@
import java.util.LinkedHashSet
// "Cast expression 'module' to 'LinkedHashSet<Int>'" "true"
// DISABLE-ERRORS
import java.util.LinkedHashSet
fun foo(): java.util.LinkedHashSet<Int> {
val module: java.util.HashSet<Int> = java.util.LinkedHashSet<Int>()
return module as LinkedHashSet<Int>
@@ -1,8 +1,8 @@
// "Change type from 'String' to '(LinkedHashSet<Int>) -> HashSet<Int>'" "true"
import java.util.HashSet
import java.util.LinkedHashSet
// "Change type from 'String' to '(LinkedHashSet<Int>) -> HashSet<Int>'" "true"
fun foo(f: ((java.util.LinkedHashSet<Int>) -> java.util.HashSet<Int>) -> String) {
foo {
(f: (LinkedHashSet<Int>) -> HashSet<Int>) -> "42"
@@ -1,6 +1,6 @@
// "Change 'bar' function return type to 'HashSet<Int>'" "true"
import java.util.HashSet
// "Change 'bar' function return type to 'HashSet<Int>'" "true"
fun bar(): HashSet<Int> = java.util.LinkedHashSet<Int>()
fun foo(): java.util.HashSet<Int> = bar()
@@ -1,7 +1,7 @@
// "Change type from 'String' to 'HashSet<Int>'" "true"
import java.util.HashSet
// "Change type from 'String' to 'HashSet<Int>'" "true"
fun foo(f: (java.util.HashSet<Int>) -> String) {
foo {
(x: HashSet<Int>) -> ""
@@ -1,7 +1,7 @@
// "Change 'f' type to '(Delegates) -> Unit'" "true"
import kotlin.properties.Delegates
// "Change 'f' type to '(Delegates) -> Unit'" "true"
fun foo() {
var f: (Delegates) -> Unit = { (x: kotlin.properties.Delegates) -> }<caret>
var f: (Delegates) -> Unit = { (x: kotlin.properties.Delegates) -> }
}
@@ -1,8 +1,8 @@
import kotlin.properties.Delegates
// WITH_RUNTIME
// EXTRACTION_TARGET: lazy property
import kotlin.properties.Delegates
class A(val n: Int = 1) {
val m: Int = 2
@@ -1,8 +1,8 @@
import kotlin.properties.Delegates
// WITH_RUNTIME
// EXTRACTION_TARGET: lazy property
import kotlin.properties.Delegates
val n: Int = 1
private val i: Int by Delegates.lazy {
@@ -11,4 +11,4 @@ private val i: Int by Delegates.lazy {
fun foo(): Int {
return i
}
}
@@ -1,8 +1,8 @@
import kotlin.properties.Delegates
// WITH_RUNTIME
// EXTRACTION_TARGET: lazy property
import kotlin.properties.Delegates
class A(val n: Int = 1) {
val m: Int = 2
-2
View File
@@ -7,5 +7,3 @@ val v: java.io.File
val v: java.util.concurrent.atomic.AtomicBoolean
val v: java.util.ArrayList<String>
</selection>
@@ -1,12 +1,12 @@
import java.io.*
import java.util.ArrayList
import java.util.concurrent.atomic.*
// PACKAGE_TO_USE_STAR_IMPORTS: java.io
// PACKAGE_TO_USE_STAR_IMPORTS: java
// PACKAGES_TO_USE_STAR_IMPORTS: java.util.concurrent
import java.io.*
import java.util.ArrayList
import java.util.concurrent.atomic.*
val v: File
val v: AtomicBoolean
val v: ArrayList<String>
+1 -1
View File
@@ -2,4 +2,4 @@
fun bar(s: String) {
<selection>val t: A.B = A().B(s)</selection>
}
}
+2 -2
View File
@@ -1,7 +1,7 @@
// IMPORT_NESTED_CLASSES: true
import A.B
// IMPORT_NESTED_CLASSES: true
fun bar(s: String) {
val t: B = A().B(s)
}
+1
View File
@@ -1,4 +1,5 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Test, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Test, superNames=[]]
MODIFIER_LIST:[annotation]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Test, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Test, superNames=[]]
MODIFIER_LIST:[]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Deprecated]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
MODIFIER_LIST:[]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Deprecated]
@@ -1,4 +1,5 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
VALUE_PARAMETER_LIST:
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
PRIMARY_CONSTRUCTOR:
MODIFIER_LIST:[private]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS:[fqName=T, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=T, superNames=[]]
PROPERTY:[fqName=obj, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=obj]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=C, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=C, superNames=[]]
CLASS_BODY:
OBJECT_DECLARATION:[fqName=C.Companion, isCompanion=true, isLocal=false, isObjectLiteral=false, isTopLevel=false, name=Companion, superNames=[]]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=More, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=More, superNames=[]]
CLASS_BODY:
PROPERTY:[fqName=More.test, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReturnTypeRef=true, isExtension=false, isTopLevel=false, isVar=false, name=test]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=C, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=C, superNames=[]]
TYPE_PARAMETER_LIST:
TYPE_PARAMETER:[fqName=null, isInVariance=false, isOutVariance=false, name=T]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=C, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=C, superNames=[]]
CLASS_BODY:
MODIFIER_LIST:[]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
PROPERTY:[fqName=foo, hasDelegate=false, hasDelegateExpression=false, hasInitializer=false, hasReturnTypeRef=true, isExtension=false, isTopLevel=true, isVar=false, name=foo]
TYPE_REFERENCE:
DYNAMIC_TYPE:
+1
View File
@@ -3,3 +3,4 @@ PsiJetFileStubImpl[package=some.test]
DOT_QUALIFIED_EXPRESSION:
REFERENCE_EXPRESSION:[referencedName=some]
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
OBJECT_DECLARATION:[fqName=<no name>, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=true, name=null, superNames=[]]
CLASS_BODY:
FUN:[fqName=null, hasBlockBody=false, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=false, name=testing]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=some, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=some]
VALUE_PARAMETER_LIST:
VALUE_PARAMETER:[fqName=null, hasDefaultValue=false, hasValOrVar=false, isMutable=false, name=t]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS_BODY:
CLASS:[fqName=A.B, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=false, name=B, superNames=[]]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS:[fqName=T, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=T, superNames=[]]
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS:[fqName=T, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=T, superNames=[]]
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS:[fqName=T, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=T, superNames=[]]
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
MODIFIER_LIST:[]
ANNOTATION:
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=f]
MODIFIER_LIST:[public]
CLASS:[fqName=null, isEnumEntry=false, isInterface=false, isLocal=true, isTopLevel=false, name=C, superNames=[]]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=f, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=f]
VALUE_PARAMETER_LIST:
OBJECT_DECLARATION:[fqName=null, isCompanion=false, isLocal=true, isObjectLiteral=false, isTopLevel=false, name=foo, superNames=[]]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
CLASS:[fqName=T, isEnumEntry=false, isInterface=true, isLocal=false, isTopLevel=true, name=T, superNames=[]]
OBJECT_DECLARATION:[fqName=Test, isCompanion=false, isLocal=false, isObjectLiteral=false, isTopLevel=true, name=Test, superNames=[A, T]]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Test, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Test, superNames=[]]
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
@@ -1,3 +1,4 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
PROPERTY:[fqName=a, hasDelegate=true, hasDelegateExpression=true, hasInitializer=false, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=a]
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=some, hasBlockBody=false, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=true, isTopLevel=true, name=some]
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
PROPERTY:[fqName=p, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=p]
OBJECT_DECLARATION:[fqName=null, isCompanion=false, isLocal=true, isObjectLiteral=true, isTopLevel=false, name=null, superNames=[]]
CLASS_BODY:
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
PROPERTY:[fqName=p, hasDelegate=true, hasDelegateExpression=true, hasInitializer=false, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=p]
OBJECT_DECLARATION:[fqName=null, isCompanion=false, isLocal=true, isObjectLiteral=true, isTopLevel=false, name=null, superNames=[]]
CLASS_BODY:
+1
View File
@@ -3,4 +3,5 @@ PsiJetFileStubImpl[package=test.testing]
DOT_QUALIFIED_EXPRESSION:
REFERENCE_EXPRESSION:[referencedName=test]
REFERENCE_EXPRESSION:[referencedName=testing]
IMPORT_LIST:
PROPERTY:[fqName=test.testing.some, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=some]
+1
View File
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.A, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=A, superNames=[]]
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
@@ -1,3 +1,4 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
PROPERTY:[fqName=c, hasDelegate=false, hasDelegateExpression=false, hasInitializer=true, hasReturnTypeRef=false, isExtension=false, isTopLevel=true, isVar=false, name=c]
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
FUN:[fqName=foo, hasBlockBody=true, hasBody=true, hasTypeParameterListBeforeFunctionName=false, isExtension=false, isTopLevel=true, name=foo]
MODIFIER_LIST:[]
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Deprecated]
+1
View File
@@ -1,6 +1,7 @@
PsiJetFileStubImpl[package=test]
PACKAGE_DIRECTIVE:
REFERENCE_EXPRESSION:[referencedName=test]
IMPORT_LIST:
CLASS:[fqName=test.SecondaryConstructors, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=SecondaryConstructors, superNames=[]]
PRIMARY_CONSTRUCTOR:
VALUE_PARAMETER_LIST:
+1
View File
@@ -1,5 +1,6 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
IMPORT_LIST:
CLASS:[fqName=Test, isEnumEntry=false, isInterface=false, isLocal=false, isTopLevel=true, name=Test, superNames=[]]
MODIFIER_LIST:[enum]
CLASS_BODY:

Some files were not shown because too many files have changed in this diff Show More