summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Mount <mount@google.com>2016-02-23 14:43:53 -0800
committerGeorge Mount <mount@google.com>2016-02-23 15:02:48 -0800
commitb522c7650bf7d9ec566845bc9eb37e761eea853d (patch)
treeaeabffa07ce82c69257f4e07fcc8141b4f23ff47
parent5884ca73e8737846bee442a8032de649615f20cb (diff)
downloaddata-binding-b522c7650bf7d9ec566845bc9eb37e761eea853d.tar.gz
GroupExpr is unnecessary.
The grouping happens at parsing time, so grouping as part of the expression model is unnecessary. It can be inferred. Change-Id: I10c617516741b9ff8115144d51fcadcd2f8b87d6
-rw-r--r--compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java18
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/ExprModel.java8
-rw-r--r--compiler/src/main/java/android/databinding/tool/expr/GroupExpr.java59
-rw-r--r--compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java1
4 files changed, 10 insertions, 76 deletions
diff --git a/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java b/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
index 045fce64..5fc5534d 100644
--- a/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
+++ b/compiler/src/main/java/android/databinding/tool/ExpressionVisitor.java
@@ -16,14 +16,6 @@
package android.databinding.tool;
-import com.google.common.base.Objects;
-
-import org.antlr.v4.runtime.ParserRuleContext;
-import org.antlr.v4.runtime.misc.NotNull;
-import org.antlr.v4.runtime.tree.ParseTree;
-import org.antlr.v4.runtime.tree.ParseTreeListener;
-import org.antlr.v4.runtime.tree.TerminalNode;
-
import android.databinding.parser.BindingExpressionBaseVisitor;
import android.databinding.parser.BindingExpressionParser;
import android.databinding.parser.BindingExpressionParser.AndOrOpContext;
@@ -39,6 +31,14 @@ import android.databinding.tool.reflection.ModelAnalyzer;
import android.databinding.tool.reflection.ModelClass;
import android.databinding.tool.util.Preconditions;
+import com.google.common.base.Objects;
+
+import org.antlr.v4.runtime.ParserRuleContext;
+import org.antlr.v4.runtime.misc.NotNull;
+import org.antlr.v4.runtime.tree.ParseTree;
+import org.antlr.v4.runtime.tree.ParseTreeListener;
+import org.antlr.v4.runtime.tree.TerminalNode;
+
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.List;
@@ -175,7 +175,7 @@ public class ExpressionVisitor extends BindingExpressionBaseVisitor<Expr> {
onEnter(ctx);
Preconditions.check(ctx.children.size() == 3, "Grouping expression should have"
+ " 3 children. # of children: %d", ctx.children.size());
- return mModel.group(ctx.children.get(1).accept(this));
+ return ctx.children.get(1).accept(this);
} finally {
onExit(ctx);
}
diff --git a/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java b/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
index 567ce3ae..f9f2c654 100644
--- a/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
+++ b/compiler/src/main/java/android/databinding/tool/expr/ExprModel.java
@@ -17,8 +17,8 @@
package android.databinding.tool.expr;
import android.databinding.tool.BindingTarget;
-import android.databinding.tool.InverseBinding;
import android.databinding.tool.CallbackWrapper;
+import android.databinding.tool.InverseBinding;
import android.databinding.tool.reflection.ModelAnalyzer;
import android.databinding.tool.reflection.ModelClass;
import android.databinding.tool.reflection.ModelMethod;
@@ -28,8 +28,6 @@ import android.databinding.tool.util.Preconditions;
import android.databinding.tool.writer.ExprModelExt;
import android.databinding.tool.writer.FlagSet;
-import com.google.common.collect.Maps;
-
import org.antlr.v4.runtime.ParserRuleContext;
import org.jetbrains.annotations.Nullable;
@@ -271,10 +269,6 @@ public class ExprModel {
return register(new UnaryExpr(op, expr));
}
- public Expr group(Expr grouped) {
- return register(new GroupExpr(grouped));
- }
-
public Expr resourceExpr(String packageName, String resourceType, String resourceName,
List<Expr> args) {
return register(new ResourceExpr(packageName, resourceType, resourceName, args));
diff --git a/compiler/src/main/java/android/databinding/tool/expr/GroupExpr.java b/compiler/src/main/java/android/databinding/tool/expr/GroupExpr.java
deleted file mode 100644
index 4a76688b..00000000
--- a/compiler/src/main/java/android/databinding/tool/expr/GroupExpr.java
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * 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 android.databinding.tool.expr;
-
-import android.databinding.tool.reflection.ModelAnalyzer;
-import android.databinding.tool.reflection.ModelClass;
-import android.databinding.tool.writer.KCode;
-
-import java.util.List;
-
-public class GroupExpr extends Expr {
- public GroupExpr(Expr wrapped) {
- super(wrapped);
- }
-
- @Override
- protected ModelClass resolveType(ModelAnalyzer modelAnalyzer) {
- return getWrapped().getResolvedType();
- }
-
- @Override
- protected List<Dependency> constructDependencies() {
- return getWrapped().constructDependencies();
- }
-
- @Override
- protected KCode generateCode(boolean expand) {
- return new KCode().app("(", getWrapped().toCode(expand)).app(")");
- }
-
- public Expr getWrapped() {
- return getChildren().get(0);
- }
-
- @Override
- public KCode toInverseCode(KCode value) {
- // Nothing to do here. Other expressions should automatically take care of grouping.
- return getWrapped().toInverseCode(value);
- }
-
- @Override
- public String getInvertibleError() {
- return getWrapped().getInvertibleError();
- }
-}
diff --git a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
index 63349324..6a89cb6a 100644
--- a/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
+++ b/compiler/src/test/java/android/databinding/tool/expr/ExprModelTest.java
@@ -45,7 +45,6 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNotSame;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
-import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
@SuppressWarnings("Duplicates")