From ccc8c775261dcd130ad23c9c06267f4da3f36fbd Mon Sep 17 00:00:00 2001 From: Evgeny Gerashchenko Date: Wed, 20 Jun 2012 17:07:45 +0400 Subject: [PATCH] Renamed JetIdeTemplateExpression to JetIdeTemplate and made not a subtype of JetExpression. Fixed corresponding tests. --- compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java | 2 +- ...{JetIdeTemplateExpression.java => JetIdeTemplate.java} | 8 ++++---- .../src/org/jetbrains/jet/lang/psi/JetVisitor.java | 2 +- .../src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java | 2 +- .../lang/types/expressions/ExpressionTypingServices.java | 3 +++ .../expressions/ExpressionTypingVisitorDispatcher.java | 5 ++--- .../tests/org/jetbrains/jet/parsing/JetParsingTest.java | 6 ++++-- .../completion/JetTemplateParameterTraversalPolicy.java | 4 ++-- 8 files changed, 18 insertions(+), 14 deletions(-) rename compiler/frontend/src/org/jetbrains/jet/lang/psi/{JetIdeTemplateExpression.java => JetIdeTemplate.java} (84%) diff --git a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java index cfa646579a2..850aef38ad4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java +++ b/compiler/frontend/src/org/jetbrains/jet/JetNodeTypes.java @@ -162,5 +162,5 @@ public interface JetNodeTypes { JetNodeType NAMESPACE_HEADER = new JetNodeType("NAMESPACE_HEADER", JetNamespaceHeader.class); JetNodeType SCRIPT = new JetNodeType("SCRIPT", JetScript.class); - JetNodeType IDE_TEMPLATE_EXPRESSION = new JetNodeType("IDE_TEMPLATE_EXPRESSION", JetIdeTemplateExpression.class); + JetNodeType IDE_TEMPLATE_EXPRESSION = new JetNodeType("IDE_TEMPLATE_EXPRESSION", JetIdeTemplate.class); } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplateExpression.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplate.java similarity index 84% rename from compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplateExpression.java rename to compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplate.java index 83268f3ab3a..05860b1e0e4 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplateExpression.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetIdeTemplate.java @@ -26,19 +26,19 @@ import org.jetbrains.jet.lexer.JetTokens; * @author Evgeny Gerashchenko * @since 2/8/12 */ -public class JetIdeTemplateExpression extends JetExpressionImpl { - public JetIdeTemplateExpression(@NotNull ASTNode node) { +public class JetIdeTemplate extends JetElementImpl { + public JetIdeTemplate(@NotNull ASTNode node) { super(node); } @Override public void accept(@NotNull JetVisitorVoid visitor) { - visitor.visitIdeTemplateExpression(this); + visitor.visitIdeTemplate(this); } @Override public R accept(@NotNull JetVisitor visitor, D data) { - return visitor.visitIdeTemplateExpression(this, data); + return visitor.visitIdeTemplate(this, data); } @Nullable diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java index a8c985c005e..ebcdc2bc8cf 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitor.java @@ -276,7 +276,7 @@ public class JetVisitor extends PsiElementVisitor { return visitExpression(expression, data); } - public R visitIdeTemplateExpression(JetIdeTemplateExpression expression, D data) { + public R visitIdeTemplate(JetIdeTemplate expression, D data) { return null; } diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java index 82fcfc9eb39..7580deeb16c 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/psi/JetVisitorVoid.java @@ -274,7 +274,7 @@ public class JetVisitorVoid extends PsiElementVisitor { visitExpression(expression); } - public void visitIdeTemplateExpression(JetIdeTemplateExpression expression) { + public void visitIdeTemplate(JetIdeTemplate expression) { } public void visitCatchSection(JetCatchClause catchClause) { diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java index 84c0717f6c1..aca16de33e2 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingServices.java @@ -279,6 +279,9 @@ public class ExpressionTypingServices { JetTypeInfo result = JetTypeInfo.create(null, context.dataFlowInfo); for (Iterator iterator = block.iterator(); iterator.hasNext(); ) { final JetElement statement = iterator.next(); + if (!(statement instanceof JetExpression)) { + continue; + } trace.record(STATEMENT, statement); final JetExpression statementExpression = (JetExpression) statement; //TODO constructor assert context.expectedType != FORBIDDEN : "" diff --git a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java index b8a8e2370e4..042d94e3d62 100644 --- a/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java +++ b/compiler/frontend/src/org/jetbrains/jet/lang/types/expressions/ExpressionTypingVisitorDispatcher.java @@ -26,7 +26,6 @@ import org.jetbrains.jet.lang.resolve.scopes.WritableScope; import org.jetbrains.jet.lang.resolve.scopes.receivers.ReceiverDescriptor; import org.jetbrains.jet.lang.types.DeferredType; import org.jetbrains.jet.lang.types.ErrorUtils; -import org.jetbrains.jet.lang.types.JetType; import org.jetbrains.jet.lang.types.JetTypeInfo; import org.jetbrains.jet.util.lazy.ReenteringLazyValueComputationException; @@ -38,8 +37,8 @@ import static org.jetbrains.jet.lang.diagnostics.Errors.TYPECHECKER_HAS_RUN_INTO public class ExpressionTypingVisitorDispatcher extends JetVisitor implements ExpressionTypingInternals { @Override - public JetTypeInfo visitIdeTemplateExpression(JetIdeTemplateExpression expression, ExpressionTypingContext data) { - return basic.visitIdeTemplateExpression(expression, data); + public JetTypeInfo visitIdeTemplate(JetIdeTemplate expression, ExpressionTypingContext data) { + return basic.visitIdeTemplate(expression, data); } @NotNull diff --git a/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java b/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java index 5a026cdffa6..209001cfa9a 100644 --- a/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java +++ b/compiler/tests/org/jetbrains/jet/parsing/JetParsingTest.java @@ -34,6 +34,7 @@ import org.jetbrains.jet.JetTestCaseBuilder; import org.jetbrains.jet.lang.parsing.JetParserDefinition; import org.jetbrains.jet.lang.psi.IfNotParsed; import org.jetbrains.jet.lang.psi.JetElement; +import org.jetbrains.jet.lang.psi.JetIdeTemplate; import org.jetbrains.jet.lang.psi.JetVisitorVoid; import java.io.File; @@ -104,10 +105,11 @@ public class JetParsingTest extends ParsingTestCase { if (result == null) { for (Annotation annotation : method.getDeclaredAnnotations()) { if (annotation instanceof IfNotParsed) { - assertNotNull( + assertTrue( "Incomplete operation in parsed OK test, method " + methodName + " in " + declaringClass.getSimpleName() + " returns null. Element text: \n" + elem.getText(), - PsiTreeUtil.findChildOfType(elem, PsiErrorElement.class)); + PsiTreeUtil.findChildOfType(elem, PsiErrorElement.class) == null + || PsiTreeUtil.findChildOfType(elem, JetIdeTemplate.class) == null); } } } diff --git a/idea/src/org/jetbrains/jet/plugin/completion/JetTemplateParameterTraversalPolicy.java b/idea/src/org/jetbrains/jet/plugin/completion/JetTemplateParameterTraversalPolicy.java index 0a06c13b92a..e0e361f7ce6 100644 --- a/idea/src/org/jetbrains/jet/plugin/completion/JetTemplateParameterTraversalPolicy.java +++ b/idea/src/org/jetbrains/jet/plugin/completion/JetTemplateParameterTraversalPolicy.java @@ -27,7 +27,7 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.util.PsiTreeUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.jet.lang.psi.JetFile; -import org.jetbrains.jet.lang.psi.JetIdeTemplateExpression; +import org.jetbrains.jet.lang.psi.JetIdeTemplate; import org.jetbrains.jet.lexer.JetToken; import org.jetbrains.jet.lexer.JetTokens; @@ -38,7 +38,7 @@ import org.jetbrains.jet.lexer.JetTokens; public class JetTemplateParameterTraversalPolicy implements TemplateParameterTraversalPolicy { @Override public boolean isValidForFile(Editor editor, PsiFile file) { - return file instanceof JetFile && PsiTreeUtil.findChildOfType(file, JetIdeTemplateExpression.class) != null; + return file instanceof JetFile && PsiTreeUtil.findChildOfType(file, JetIdeTemplate.class) != null; } @Override