made JetFile implements JetElement

This commit is contained in:
Svetlana Isakova
2012-12-18 15:25:36 +04:00
parent 62f35e5e87
commit b6e2a0fb39
3 changed files with 28 additions and 9 deletions
@@ -55,13 +55,7 @@ public class JetElementImpl extends ASTWrapperPsiElement implements JetElement {
@Override
public <D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data) {
PsiElement child = getFirstChild();
while (child != null) {
if (child instanceof JetElement) {
((JetElement) child).accept(visitor, data);
}
child = child.getNextSibling();
}
JetPsiUtil.visitChildren(this, visitor, data);
}
@Override
@@ -34,7 +34,7 @@ import org.jetbrains.jet.plugin.JetLanguage;
import java.util.List;
public class JetFile extends PsiFileBase implements JetDeclarationContainer {
public class JetFile extends PsiFileBase implements JetDeclarationContainer, JetElement {
public JetFile(FileViewProvider viewProvider) {
super(viewProvider, JetLanguage.INSTANCE);
}
@@ -111,10 +111,25 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer {
@Override
public void accept(@NotNull PsiElementVisitor visitor) {
if (visitor instanceof JetVisitorVoid) {
((JetVisitorVoid) visitor).visitJetFile(this);
accept((JetVisitorVoid) visitor);
}
else {
visitor.visitFile(this);
}
}
@Override
public <D> void acceptChildren(@NotNull JetTreeVisitor<D> visitor, D data) {
JetPsiUtil.visitChildren(this, visitor, data);
}
@Override
public void accept(@NotNull JetVisitorVoid visitor) {
visitor.visitJetFile(this);
}
@Override
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
return visitor.visitJetFile(this, data);
}
}
@@ -51,6 +51,16 @@ public class JetPsiUtil {
private JetPsiUtil() {
}
public static <D> void visitChildren(@NotNull JetElement element, @NotNull JetTreeVisitor<D> visitor, D data) {
PsiElement child = element.getFirstChild();
while (child != null) {
if (child instanceof JetElement) {
((JetElement) child).accept(visitor, data);
}
child = child.getNextSibling();
}
}
@Nullable
public static JetExpression deparenthesizeWithNoTypeResolution(@NotNull JetExpression expression) {
return deparenthesizeWithResolutionStrategy(expression, null);