KT-627 Drop Predicate expression

The residuals removed
This commit is contained in:
Andrey Breslav
2012-03-14 12:40:06 +04:00
parent 3c9990d97c
commit 9441e57fa0
8 changed files with 3 additions and 80 deletions
@@ -1610,25 +1610,6 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> {
}
}
@Override
public StackValue visitPredicateExpression(JetPredicateExpression expression, StackValue receiver) {
JetExpression expr = expression.getReceiverExpression();
StackValue value = gen(expr);
Type receiverType = expressionType(expr);
value.put(receiverType, v);
Label ifFalse = new Label();
Label end = new Label();
v.dup();
StackValue result = genQualified(StackValue.onStack(receiverType), expression.getSelectorExpression());
result.condJump(ifFalse, true, v);
v.goTo(end);
v.mark(ifFalse);
v.pop();
v.aconst(null);
v.mark(end);
return StackValue.onStack(expressionType(expression));
}
@Override
public StackValue visitBinaryExpression(JetBinaryExpression expression, StackValue receiver) {
final IElementType opToken = expression.getOperationReference().getReferencedNameElementType();
@@ -265,7 +265,6 @@ public class JetControlFlowProcessor {
JetArrayAccessExpression arrayAccessExpression = (JetArrayAccessExpression) left;
visitAssignToArrayAccess(expression, arrayAccessExpression);
} else if (left instanceof JetQualifiedExpression) {
assert !(left instanceof JetPredicateExpression) : left; // TODO
assert !(left instanceof JetHashQualifiedExpression) : left; // TODO
JetQualifiedExpression qualifiedExpression = (JetQualifiedExpression) left;
value(qualifiedExpression.getReceiverExpression(), false);
@@ -126,7 +126,7 @@ public class JetExpressionParsing extends AbstractJetParsing {
private enum Precedence {
POSTFIX(PLUSPLUS, MINUSMINUS,
// HASH,
DOT, SAFE_ACCESS, QUEST), // typeArguments? valueArguments : typeArguments : arrayAccess
DOT, SAFE_ACCESS), // typeArguments? valueArguments : typeArguments : arrayAccess
PREFIX(MINUS, PLUS, MINUSMINUS, PLUSPLUS, EXCL, LABEL_IDENTIFIER, AT, ATAT) { // attributes
@@ -1,39 +0,0 @@
/*
* 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 com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
/**
* @author abreslav
*/
public class JetPredicateExpression extends JetQualifiedExpression {
public JetPredicateExpression(@NotNull ASTNode node) {
super(node);
}
@Override
public void accept(@NotNull JetVisitorVoid visitor) {
visitor.visitPredicateExpression(this);
}
@Override
public <R, D> R accept(@NotNull JetVisitor<R, D> visitor, D data) {
return visitor.visitPredicateExpression(this, data);
}
}
@@ -256,10 +256,6 @@ public class JetVisitor<R, D> extends PsiElementVisitor {
return visitQualifiedExpression(expression, data);
}
public R visitPredicateExpression(JetPredicateExpression expression, D data) {
return visitQualifiedExpression(expression, data);
}
public R visitSafeQualifiedExpression(JetSafeQualifiedExpression expression, D data) {
return visitQualifiedExpression(expression, data);
}
@@ -254,10 +254,6 @@ public class JetVisitorVoid extends PsiElementVisitor {
visitQualifiedExpression(expression);
}
public void visitPredicateExpression(JetPredicateExpression expression) {
visitQualifiedExpression(expression);
}
public void visitSafeQualifiedExpression(JetSafeQualifiedExpression expression) {
visitQualifiedExpression(expression);
}
@@ -544,17 +544,7 @@ public class BasicExpressionTypingVisitor extends ExpressionTypingVisitor {
}
}
JetType result;
if (expression.getOperationSign() == JetTokens.QUEST) {
if (selectorReturnType != null && !isBoolean(selectorReturnType)) {
// TODO : more comprehensible error message
context.trace.report(TYPE_MISMATCH.on(selectorExpression, JetStandardLibrary.getInstance().getBooleanType(), selectorReturnType));
}
result = TypeUtils.makeNullable(receiverType);
}
else {
result = selectorReturnType;
}
JetType result = selectorReturnType;
// TODO : this is suspicious: remove this code?
if (result != null) {
context.trace.record(BindingContext.EXPRESSION_TYPE, selectorExpression, result);
@@ -188,7 +188,7 @@ public interface JetTokens {
MINUS, EXCL, DIV, PERC, LT, GT, LTEQ, GTEQ, EQEQEQ, EXCLEQEQEQ, EQEQ, EXCLEQ, ANDAND, OROR,
SAFE_ACCESS, ELVIS,
// MAP, FILTER,
QUEST, COLON,
COLON,
RANGE, EQ, MULTEQ, DIVEQ, PERCEQ, PLUSEQ, MINUSEQ,
NOT_IN, NOT_IS,
// HASH,