diff options
5 files changed, 28 insertions, 47 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java index 14827fe2a7..b940f50dc2 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/IntegerLiteral.java @@ -18,15 +18,25 @@ import java.io.IOException; /** * Syntax node for an integer literal. */ -public final class IntegerLiteral extends Literal<Integer> { +public final class IntegerLiteral extends Expression { + private final int value; public IntegerLiteral(Integer value) { - super(value); + this.value = value; + } + + public int getValue() { + return value; + } + + @Override + Object doEval(Environment env) { + return value; } @Override public void prettyPrint(Appendable buffer) throws IOException { - buffer.append(value.toString()); + buffer.append(String.valueOf(value)); } @Override diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Literal.java b/src/main/java/com/google/devtools/build/lib/syntax/Literal.java deleted file mode 100644 index 12eec77e35..0000000000 --- a/src/main/java/com/google/devtools/build/lib/syntax/Literal.java +++ /dev/null @@ -1,39 +0,0 @@ -// Copyright 2014 The Bazel Authors. All rights reserved. -// -// 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 com.google.devtools.build.lib.syntax; - -/** - * Generic base class for primitive literals. - */ -public abstract class Literal<T> extends Expression { - - protected final T value; - - protected Literal(T value) { - this.value = value; - } - - /** - * Returns the value of this literal. - */ - public T getValue() { - return value; - } - - @Override - Object doEval(Environment env) { - return value; - } -} diff --git a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java index 44ac91620b..520dcbd954 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/SliceExpression.java @@ -55,7 +55,7 @@ public final class SliceExpression extends Expression { boolean endIsDefault = (end instanceof Identifier) && ((Identifier) end).getName().equals("None"); boolean stepIsDefault = - (step instanceof IntegerLiteral) && ((IntegerLiteral) step).getValue().equals(1); + (step instanceof IntegerLiteral) && ((IntegerLiteral) step).getValue() == 1; object.prettyPrint(buffer); buffer.append('['); diff --git a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java index df559fe7fa..19d00b9b8d 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/StringLiteral.java @@ -18,10 +18,20 @@ import java.io.IOException; /** * Syntax node for a string literal. */ -public final class StringLiteral extends Literal<String> { +public final class StringLiteral extends Expression { + String value; + + public String getValue() { + return value; + } + + @Override + Object doEval(Environment env) { + return value; + } public StringLiteral(String value) { - super(value); + this.value = value; } @Override diff --git a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java index a9a9e4cc7b..784b0a7926 100644 --- a/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java +++ b/src/test/java/com/google/devtools/build/lib/syntax/ParserTest.java @@ -290,7 +290,7 @@ public class ParserTest extends EvaluationTestCase { @Test public void testSubstring() throws Exception { SliceExpression s = (SliceExpression) parseExpression("'FOO.CC'[:].lower()[1:]"); - assertThat(((IntegerLiteral) s.getStart()).value).isEqualTo(1); + assertThat(((IntegerLiteral) s.getStart()).getValue()).isEqualTo(1); FuncallExpression e = (FuncallExpression) parseExpression( "'FOO.CC'.lower()[1:].startswith('oo')"); @@ -299,7 +299,7 @@ public class ParserTest extends EvaluationTestCase { assertThat(e.getArguments()).hasSize(1); s = (SliceExpression) parseExpression("'FOO.CC'[1:][:2]"); - assertThat(((IntegerLiteral) s.getEnd()).value).isEqualTo(2); + assertThat(((IntegerLiteral) s.getEnd()).getValue()).isEqualTo(2); } @Test |