replace Class.isInstance checks with cheaper ones

This commit is contained in:
peter
2010-06-29 01:58:01 +04:00
parent 90f4133650
commit 1754bb13eb
3 changed files with 11 additions and 7 deletions
@@ -19,6 +19,7 @@ import com.intellij.psi.PsiElement;
import com.intellij.psi.FileResolveScopeProvider;
import com.intellij.util.IncorrectOperationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.typedef.members.GrMembersDeclaration;
import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.imports.GrImportStatement;
import org.jetbrains.plugins.groovy.lang.psi.api.toplevel.packaging.GrPackageDefinition;
@@ -33,6 +34,7 @@ public interface GroovyFile extends GroovyFileBase, FileResolveScopeProvider {
@NotNull
String getPackageName();
@Nullable
GrPackageDefinition getPackageDefinition();
void setPackageName(String packageName);
@@ -44,6 +44,7 @@ import org.jetbrains.plugins.groovy.GroovyFileType;
import org.jetbrains.plugins.groovy.GroovyIcons;
import org.jetbrains.plugins.groovy.extensions.GroovyScriptType;
import org.jetbrains.plugins.groovy.lang.lexer.GroovyTokenTypes;
import org.jetbrains.plugins.groovy.lang.parser.GroovyElementTypes;
import org.jetbrains.plugins.groovy.lang.psi.GroovyFile;
import org.jetbrains.plugins.groovy.lang.psi.GroovyPsiElementFactory;
import org.jetbrains.plugins.groovy.lang.psi.api.statements.GrTopLevelDefintion;
@@ -88,7 +89,7 @@ public class GroovyFileImpl extends GroovyFileBaseImpl implements GroovyFile {
if (stub instanceof GrFileStub) {
return ((GrFileStub)stub).getPackageName().toString();
}
GrPackageDefinition packageDef = findChildByClass(GrPackageDefinition.class);
GrPackageDefinition packageDef = getPackageDefinition();
if (packageDef != null) {
return packageDef.getPackageName();
}
@@ -96,7 +97,8 @@ public class GroovyFileImpl extends GroovyFileBaseImpl implements GroovyFile {
}
public GrPackageDefinition getPackageDefinition() {
return findChildByClass(GrPackageDefinition.class);
ASTNode node = calcTreeElement().findChildByType(GroovyElementTypes.PACKAGE_DEFINITION);
return node != null ? (GrPackageDefinition)node.getPsi() : null;
}
private GrParameter getSyntheticArgsParameter() {
@@ -28,10 +28,7 @@ import com.intellij.psi.tree.IElementType;
import com.intellij.psi.util.PropertyUtil;
import com.intellij.psi.util.PsiTreeUtil;
import com.intellij.psi.util.TypeConversionUtil;
import com.intellij.util.ArrayUtil;
import com.intellij.util.Consumer;
import com.intellij.util.Function;
import com.intellij.util.IncorrectOperationException;
import com.intellij.util.*;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -711,7 +708,10 @@ public class GrReferenceExpressionImpl extends GrReferenceElementImpl implements
}
public GrExpression getQualifierExpression() {
return findChildByClass(GrExpression.class);
for (PsiElement cur = this.getFirstChild(); cur != null; cur = cur.getNextSibling()) {
if (cur instanceof GrExpression) return (GrExpression)cur;
}
return null;
}
public boolean isQualified() {