diff --git a/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java b/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java index 79944b2ff543..50ac1744e5b2 100644 --- a/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java +++ b/java/java-psi-impl/src/com/intellij/lang/java/parser/ReferenceParser.java @@ -209,9 +209,7 @@ public class ReferenceParser { typeInfo.isParameterized = parseReferenceParameterList(builder, true, diamonds); } else { - if (!isStaticImport || builder.getTokenType() == JavaTokenType.DOT) { - emptyElement(builder, JavaElementType.REFERENCE_PARAMETER_LIST); - } + emptyElement(builder, JavaElementType.REFERENCE_PARAMETER_LIST); } boolean hasIdentifier; @@ -261,7 +259,7 @@ public class ReferenceParser { if (parameterList) { typeInfo.isParameterized = parseReferenceParameterList(builder, true, diamonds); } - else if (!isStaticImport || builder.getTokenType() == JavaTokenType.DOT) { + else { emptyElement(builder, JavaElementType.REFERENCE_PARAMETER_LIST); } } diff --git a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java index 9df30ba5232a..7cf121c612aa 100644 --- a/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java +++ b/java/java-psi-impl/src/com/intellij/psi/impl/source/PsiImportStaticReferenceElementImpl.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2011 JetBrains s.r.o. + * Copyright 2000-2012 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -65,25 +65,16 @@ public class PsiImportStaticReferenceElementImpl extends CompositePsiElement imp @Override public final ASTNode findChildByRole(int role) { LOG.assertTrue(ChildRole.isUnique(role)); - switch(role){ + switch (role) { default: return null; case ChildRole.REFERENCE_NAME: - if (getLastChildNode().getElementType() == JavaTokenType.IDENTIFIER){ - return getLastChildNode(); - } - else{ - return null; - } + return findChildByType(JavaTokenType.IDENTIFIER); case ChildRole.QUALIFIER: - if (getFirstChildNode().getElementType() == JavaElementType.JAVA_CODE_REFERENCE){ - return getFirstChildNode(); - } - else{ - return null; - } + final TreeElement node = getFirstChildNode(); + return node.getElementType() == JavaElementType.JAVA_CODE_REFERENCE ? node : null; case ChildRole.DOT: return findChildByType(JavaTokenType.DOT); diff --git a/java/java-tests/testData/psi/parser-full/importParsing/StaticImport1.txt b/java/java-tests/testData/psi/parser-full/importParsing/StaticImport1.txt index cdc45d1611c3..8e5aee8e3a05 100644 --- a/java/java-tests/testData/psi/parser-full/importParsing/StaticImport1.txt +++ b/java/java-tests/testData/psi/parser-full/importParsing/StaticImport1.txt @@ -22,4 +22,6 @@ PsiJavaFile:StaticImport1.java PsiJavaToken:DOT('.') PsiIdentifier:sort('sort') + PsiReferenceParameterList + PsiJavaToken:SEMICOLON(';') \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/files/StaticImport1.txt b/java/java-tests/testData/psi/parser-partial/files/StaticImport1.txt index cdc45d1611c3..8e5aee8e3a05 100644 --- a/java/java-tests/testData/psi/parser-partial/files/StaticImport1.txt +++ b/java/java-tests/testData/psi/parser-partial/files/StaticImport1.txt @@ -22,4 +22,6 @@ PsiJavaFile:StaticImport1.java PsiJavaToken:DOT('.') PsiIdentifier:sort('sort') + PsiReferenceParameterList + PsiJavaToken:SEMICOLON(';') \ No newline at end of file diff --git a/java/java-tests/testData/psi/parser-partial/files/UnclosedImport3.txt b/java/java-tests/testData/psi/parser-partial/files/UnclosedImport3.txt index fbe7d0e99952..2715038acd6d 100644 --- a/java/java-tests/testData/psi/parser-partial/files/UnclosedImport3.txt +++ b/java/java-tests/testData/psi/parser-partial/files/UnclosedImport3.txt @@ -7,5 +7,7 @@ PsiJavaFile:UnclosedImport3.java PsiWhiteSpace(' ') PsiImportStaticReferenceElement:a PsiIdentifier:a('a') + PsiReferenceParameterList + PsiErrorElement:';' expected \ No newline at end of file