Fix tests: No dangling annotations in stubs

This commit is contained in:
Andrey Breslav
2014-12-26 00:58:26 +03:00
parent 6c6ced2442
commit 06c5be6489
5 changed files with 38 additions and 2 deletions
@@ -92,7 +92,7 @@ public class JetClassBody extends JetElementImplStub<KotlinPlaceHolderStub<JetCl
@NotNull
public List<JetAnnotationEntry> getDanglingAnnotations() {
return KotlinPackage.flatMap(
findChildrenByClass(JetModifierList.class),
getStubOrPsiChildrenAsList(MODIFIER_LIST),
new Function1<JetModifierList, Iterable<JetAnnotationEntry>>() {
@Override
public Iterable<JetAnnotationEntry> invoke(JetModifierList modifierList) {
@@ -245,8 +245,15 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
*/
@NotNull
public List<JetAnnotationEntry> getDanglingAnnotations() {
KotlinFileStub stub = getStub();
JetModifierList[] danglingModifierLists = stub == null
? findChildrenByClass(JetModifierList.class)
: stub.getChildrenByType(
JetStubElementTypes.MODIFIER_LIST,
JetStubElementTypes.MODIFIER_LIST.getArrayFactory()
);
return KotlinPackage.flatMap(
findChildrenByClass(JetModifierList.class),
danglingModifierLists,
new Function1<JetModifierList, Iterable<JetAnnotationEntry>>() {
@Override
public Iterable<JetAnnotationEntry> invoke(JetModifierList modifierList) {
@@ -0,0 +1,18 @@
PsiJetFileStubImpl[package=]
PACKAGE_DIRECTIVE:
CLASS:[fqName=C, isEnumEntry=false, isLocal=false, isTopLevel=true, isTrait=false, name=C, superNames=[]]
CLASS_BODY:
MODIFIER_LIST:[]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Ann]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Ann]
MODIFIER_LIST:[]
ANNOTATION:
ANNOTATION_ENTRY:[hasValueArguments=false, shortName=Ann]
CONSTRUCTOR_CALLEE:
TYPE_REFERENCE:
USER_TYPE:[isAbsoluteInRootPackage=false]
REFERENCE_EXPRESSION:[referencedName=Ann]
@@ -0,0 +1,5 @@
class C {
[Ann]
}
[Ann]
@@ -84,6 +84,12 @@ public class StubBuilderTestGenerated extends AbstractStubBuilderTest {
doTest(fileName);
}
@TestMetadata("DanglingAnnotations.kt")
public void testDanglingAnnotations() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/DanglingAnnotations.kt");
doTest(fileName);
}
@TestMetadata("DynamicType.kt")
public void testDynamicType() throws Exception {
String fileName = JetTestUtils.navigationMetadata("idea/testData/stubs/DynamicType.kt");