Stubs - Remove usage of JetExpressionImpl where interface should be used

This commit is contained in:
Nikolay Krasko
2012-06-15 12:36:41 +04:00
parent eb135ee81d
commit e3e1219147
40 changed files with 82 additions and 42 deletions
@@ -45,7 +45,7 @@ public class JetAnnotatedExpression extends JetExpressionImpl {
@Nullable
public JetExpression getBaseExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
public List<JetAnnotation> getAttributeAnnotations() {
@@ -57,7 +57,7 @@ public class JetArrayAccessExpression extends JetReferenceExpression {
@NotNull
public JetExpression getArrayExpression() {
JetExpression baseExpression = findChildByClass(JetExpressionImpl.class);
JetExpression baseExpression = findChildByClass(JetExpression.class);
assert baseExpression != null;
return baseExpression;
}
@@ -43,7 +43,7 @@ public class JetBinaryExpression extends JetExpressionImpl implements JetOperati
@NotNull
public JetExpression getLeft() {
JetExpression left = findChildByClass(JetExpressionImpl.class);
JetExpression left = findChildByClass(JetExpression.class);
assert left != null;
return left;
}
@@ -53,7 +53,7 @@ public class JetBinaryExpression extends JetExpressionImpl implements JetOperati
ASTNode node = getOperationReference().getNode().getTreeNext();
while (node != null) {
PsiElement psi = node.getPsi();
if (psi instanceof JetExpressionImpl) {
if (psi instanceof JetExpression) {
return (JetExpression) psi;
}
node = node.getTreeNext();
@@ -42,7 +42,7 @@ public class JetBinaryExpressionWithTypeRHS extends JetExpressionImpl {
@NotNull
public JetExpression getLeft() {
JetExpression left = findChildByClass(JetExpressionImpl.class);
JetExpression left = findChildByClass(JetExpression.class);
assert left != null;
return left;
}
@@ -48,7 +48,7 @@ public class JetCallExpression extends JetExpressionImpl implements JetCallEleme
@Override
@Nullable
public JetExpression getCalleeExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -57,6 +57,6 @@ public class JetCatchClause extends JetElementImpl {
@Nullable @IfNotParsed
public JetExpression getCatchBody() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -151,6 +151,7 @@ public class JetClass extends JetNotStubbedTypeParameterListOwner
return hasModifier(JetTokens.ANNOTATION_KEYWORD);
}
@NotNull
@Override
public IStubElementType getElementType() {
// TODO (stubs)
@@ -183,6 +184,11 @@ public class JetClass extends JetNotStubbedTypeParameterListOwner
@Nullable
private String getQualifiedName() {
PsiJetClassStub stub = getStub();
if (stub != null) {
return stub.getQualifiedName();
}
List<String> parts = new ArrayList<String>();
JetClassOrObject current = this;
while (current != null) {
@@ -207,6 +213,11 @@ public class JetClass extends JetNotStubbedTypeParameterListOwner
*/
@NotNull
public List<String> getSuperNames() {
PsiJetClassStub stub = getStub();
if (stub != null) {
return stub.getSuperNames();
}
final List<JetDelegationSpecifier> specifiers = getDelegationSpecifiers();
if (specifiers.size() == 0) return Collections.emptyList();
List<String> result = new ArrayList<String>();
@@ -238,6 +249,16 @@ public class JetClass extends JetNotStubbedTypeParameterListOwner
}
}
@Override
public String getName() {
PsiJetClassStub stub = getStub();
if (stub != null) {
return stub.getName();
}
return super.getName();
}
//@Override
//public ItemPresentation getPresentation() {
// return ItemPresentationProviders.getItemPresentation(this);
@@ -39,7 +39,7 @@ public class JetClassInitializer extends JetDeclarationImpl implements JetStatem
@NotNull
public JetExpression getBody() {
JetExpression body = findChildByClass(JetExpressionImpl.class);
JetExpression body = findChildByClass(JetExpression.class);
assert body != null;
return body;
}
@@ -31,7 +31,7 @@ public class JetDecomposerPattern extends JetPattern {
@Nullable @IfNotParsed
public JetExpression getDecomposerExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Nullable
@@ -40,6 +40,6 @@ public class JetDelegatorByExpressionSpecifier extends JetDelegationSpecifier {
@Nullable @IfNotParsed
public JetExpression getDelegateExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -42,6 +42,6 @@ abstract class JetExpressionImpl extends JetElementImpl implements JetExpression
JetContainerNode containerNode = (JetContainerNode) findChildByType(type);
if (containerNode == null) return null;
return containerNode.findChildByClass(JetExpressionImpl.class);
return containerNode.findChildByClass(JetExpression.class);
}
}
@@ -30,7 +30,7 @@ public class JetExpressionPattern extends JetPattern {
@Nullable @IfNotParsed
public JetExpression getExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -52,7 +52,7 @@ abstract public class JetFunction extends JetNotStubbedTypeParameterListOwner
@Override
@Nullable
public JetExpression getBodyExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -46,7 +46,7 @@ public class JetImportDirective extends JetElementImpl {
@Nullable @IfNotParsed
public JetExpression getImportedReference() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Nullable
@@ -42,7 +42,7 @@ public class JetIsExpression extends JetExpressionImpl {
@NotNull
public JetExpression getLeftHandSide() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Nullable @IfNotParsed
@@ -39,7 +39,7 @@ public class JetLabelQualifiedExpression extends JetExpressionImpl {
@Nullable @IfNotParsed
public JetExpression getLabeledExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Nullable
@@ -30,7 +30,7 @@ public final class JetModifiableBlockHelper {
* Tested in OutOfBlockModificationTest
*/
public static boolean shouldChangeModificationCount(PsiElement place) {
JetDeclaration declaration = PsiTreeUtil.getParentOfType(place, JetDeclarationImpl.class, true);
JetDeclaration declaration = PsiTreeUtil.getParentOfType(place, JetDeclaration.class, true);
if (declaration != null) {
if (declaration instanceof JetNamedFunction) {
JetNamedFunction function = (JetNamedFunction) declaration;
@@ -61,7 +61,7 @@ public final class JetModifiableBlockHelper {
}
private static boolean takePartInDeclarationTypeInference(PsiElement place) {
JetDeclaration declaration = PsiTreeUtil.getParentOfType(place, JetDeclarationImpl.class, true);
JetDeclaration declaration = PsiTreeUtil.getParentOfType(place, JetDeclaration.class, true);
if (declaration != null) {
if (declaration instanceof JetNamedFunction) {
JetNamedFunction function = (JetNamedFunction) declaration;
@@ -28,6 +28,7 @@ import org.jetbrains.jet.lexer.JetTokens;
/**
* @author max
*/
// TODO: Remove when all named declarations get stubs
@Deprecated
abstract class JetNotStubbedNamedDeclaration extends JetDeclarationImpl implements JetNamedDeclaration {
public JetNotStubbedNamedDeclaration(@NotNull ASTNode node) {
@@ -27,8 +27,9 @@ import java.util.List;
/**
* @author max
*/
// TODO: Remove when all implementations of JetTypeParameterListOwner get stubs
@Deprecated
class JetNotStubbedTypeParameterListOwner extends JetNotStubbedNamedDeclaration implements JetTypeParameterListOwner {
abstract class JetNotStubbedTypeParameterListOwner extends JetNotStubbedNamedDeclaration implements JetTypeParameterListOwner {
public JetNotStubbedTypeParameterListOwner(@NotNull ASTNode node) {
super(node);
}
@@ -51,7 +51,7 @@ public class JetParameter extends JetNotStubbedNamedDeclaration {
ASTNode child = getNode().getFirstChildNode();
while (child != null) {
if (child.getElementType() == JetTokens.EQ) passedEQ = true;
if (passedEQ && child.getPsi() instanceof JetExpressionImpl) {
if (passedEQ && child.getPsi() instanceof JetExpression) {
return (JetExpression) child.getPsi();
}
child = child.getTreeNext();
@@ -40,6 +40,6 @@ public class JetParenthesizedExpression extends JetExpressionImpl {
@Nullable @IfNotParsed
public JetExpression getExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -29,7 +29,7 @@ public class JetPostfixExpression extends JetUnaryExpression {
@NotNull
public JetExpression getBaseExpression() {
JetExpression answer = findChildByClass(JetExpressionImpl.class);
JetExpression answer = findChildByClass(JetExpression.class);
assert answer != null;
return answer;
}
@@ -42,7 +42,7 @@ public class JetPrefixExpression extends JetUnaryExpression {
@Nullable @IfNotParsed
public JetExpression getBaseExpression() {
PsiElement expression = getOperationReference().getNextSibling();
while (expression != null && !(expression instanceof JetExpressionImpl)) {
while (expression != null && !(expression instanceof JetExpression)) {
expression = expression.getNextSibling();
}
return (JetExpression) expression;
@@ -130,7 +130,7 @@ public class JetProperty extends JetNotStubbedTypeParameterListOwner implements
@Nullable
public JetExpression getInitializer() {
PsiElement eq = findChildByType(EQ);
return PsiTreeUtil.getNextSiblingOfType(eq, JetExpressionImpl.class);
return PsiTreeUtil.getNextSiblingOfType(eq, JetExpression.class);
}
@NotNull
@@ -74,7 +74,7 @@ public class JetPropertyAccessor extends JetDeclarationImpl implements JetDeclar
@Nullable
@Override
public JetExpression getBodyExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -180,7 +180,7 @@ public class JetPsiUtil {
if (parent instanceof JetFile) {
firstPart = getFQName((JetFile) parent);
}
else if (parent instanceof JetNotStubbedNamedDeclaration) {
else if (parent instanceof JetNamedDeclaration) {
firstPart = getFQName((JetNamedDeclaration) parent);
}
@@ -33,7 +33,7 @@ public abstract class JetQualifiedExpression extends JetExpressionImpl {
@NotNull
public JetExpression getReceiverExpression() {
JetExpression left = findChildByClass(JetExpressionImpl.class);
JetExpression left = findChildByClass(JetExpression.class);
assert left != null;
return left;
}
@@ -43,7 +43,7 @@ public abstract class JetQualifiedExpression extends JetExpressionImpl {
ASTNode node = getOperationTokenNode();
while (node != null) {
PsiElement psi = node.getPsi();
if (psi instanceof JetExpressionImpl) {
if (psi instanceof JetExpression) {
return (JetExpression) psi;
}
node = node.getTreeNext();
@@ -40,6 +40,6 @@ public class JetReturnExpression extends JetLabelQualifiedExpression implements
@Nullable
public JetExpression getReturnedExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -68,7 +68,7 @@ public class JetSecondaryConstructor extends JetDeclarationImpl implements JetDe
@Override
public JetExpression getBodyExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -22,10 +22,10 @@ package org.jetbrains.jet.lang.psi;
*/
/**
* This is an interface to show that {@link JetExpressionImpl} is not
* This is an interface to show that {@link JetExpression} is not
* actually an expression (in meaning that this expression can be placed after "val x = ").
* This is possibly redundant interface, all inheritors of this interface should be refactored that they are not
* {@link JetExpressionImpl}, after such refactoring, this interface can be removed.
* {@link JetExpression}, after such refactoring, this interface can be removed.
*/
public interface JetStatementExpression {
}
@@ -30,7 +30,7 @@ public abstract class JetStringTemplateEntry extends JetElementImpl {
@Nullable
public JetExpression getExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -19,6 +19,7 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.extapi.psi.StubBasedPsiElementBase;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiElement;
import com.intellij.psi.StubBasedPsiElement;
import com.intellij.psi.stubs.IStubElementType;
import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.NotNull;
@@ -28,7 +29,7 @@ import org.jetbrains.jet.lexer.JetToken;
/**
* @author Nikolay Krasko
*/
abstract class JetStubDeclaration<T extends StubElement> extends StubBasedPsiElementBase<T> implements JetDeclaration {
abstract class JetStubDeclaration<T extends StubElement> extends StubBasedPsiElementBase<T> implements JetDeclaration, StubBasedPsiElement<T> {
public JetStubDeclaration(@NotNull T stub, @NotNull IStubElementType nodeType) {
super(stub, nodeType);
}
@@ -40,6 +40,6 @@ public class JetThrowExpression extends JetExpressionImpl {
@Nullable @IfNotParsed
public JetExpression getThrownExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
}
@@ -1,3 +1,19 @@
/*
* Copyright 2010-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.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.jetbrains.jet.lang.psi;
import org.jetbrains.annotations.NotNull;
@@ -44,7 +44,7 @@ public class JetValueArgument extends JetElementImpl implements ValueArgument {
@Override
@Nullable @IfNotParsed
public JetExpression getArgumentExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -41,7 +41,7 @@ public class JetWhenConditionInRange extends JetWhenCondition {
ASTNode node = getOperationReference().getNode().getTreeNext();
while (node != null) {
PsiElement psi = node.getPsi();
if (psi instanceof JetExpressionImpl) {
if (psi instanceof JetExpression) {
return (JetExpression) psi;
}
node = node.getTreeNext();
@@ -41,7 +41,7 @@ public class JetWhenEntry extends JetElementImpl {
@Nullable
public JetExpression getExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -40,7 +40,7 @@ public class JetWhenExpression extends JetExpressionImpl {
@Nullable
public JetExpression getSubjectExpression() {
return findChildByClass(JetExpressionImpl.class);
return findChildByClass(JetExpression.class);
}
@Override
@@ -51,8 +51,8 @@ public class JetClassElementType extends JetStubElementType<PsiJetClassStub, Jet
@Override
public JetClass createPsi(@NotNull PsiJetClassStub stub) {
//return getPsiFactory(stub).createClass(stub);
return null;
// return new JetClass(stub);
return null;
}
@Override
@@ -38,7 +38,7 @@ import java.io.IOException;
* @author Nikolay Krasko
*/
public class JetFileElementType extends IStubFileElementType<PsiJetFileStub> {
public static final int STUB_VERSION = 4;
public static final int STUB_VERSION = 5;
public JetFileElementType() {
super("jet.FILE", JetLanguage.INSTANCE);