aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar ccross <ccross@google.com>2017-12-04 15:11:27 -0800
committerGravatar Copybara-Service <copybara-piper@google.com>2017-12-04 15:13:25 -0800
commitb0fb55ad19e4751b61cbbf79ba60748b6e594100 (patch)
treed9d205f6e5effbe2c109d56f1906924ef0697217
parent349595443e5456a852b09f04f6e732b3c7a6c860 (diff)
Remove static import of inner class InferredType's fields
A few of the InferredType's fields were being static imported, but not all of them, and the use of the statically imported fields was inconsistent. Statically importing the inner class causes strange errors when building desugar in the Android platform build with OpenJDK8, but not OpenJDK9: external/desugar/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java:1015: error: cannot find symbol @AutoValue ^ symbol: class AutoValue location: class BytecodeTypeInference 1 error Remove the static imports to make the build work and to make the usage consistent. RELNOTES:None. PiperOrigin-RevId: 177875501
-rw-r--r--src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java117
1 files changed, 56 insertions, 61 deletions
diff --git a/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java b/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
index 36dc18b2e8..777a4ab722 100644
--- a/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
+++ b/src/tools/android/java/com/google/devtools/build/android/desugar/BytecodeTypeInference.java
@@ -15,11 +15,6 @@ package com.google.devtools.build.android.desugar;
import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
-import static com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType.DOUBLE;
-import static com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType.FLOAT;
-import static com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType.INT;
-import static com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType.LONG;
-import static com.google.devtools.build.android.desugar.BytecodeTypeInference.InferredType.TOP;
import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
@@ -109,41 +104,41 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Opcodes.ICONST_3:
case Opcodes.ICONST_4:
case Opcodes.ICONST_5:
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.LCONST_0:
case Opcodes.LCONST_1:
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.FCONST_0:
case Opcodes.FCONST_1:
case Opcodes.FCONST_2:
- push(FLOAT);
+ push(InferredType.FLOAT);
break;
case Opcodes.DCONST_0:
case Opcodes.DCONST_1:
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
break;
case Opcodes.IALOAD:
case Opcodes.BALOAD:
case Opcodes.CALOAD:
case Opcodes.SALOAD:
pop(2);
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.LALOAD:
case Opcodes.D2L:
pop(2);
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.DALOAD:
case Opcodes.L2D:
pop(2);
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
break;
case Opcodes.AALOAD:
InferredType arrayType = pop(2);
@@ -259,7 +254,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Opcodes.FCMPL:
case Opcodes.FCMPG:
pop(2);
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.LADD:
@@ -271,45 +266,45 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Opcodes.LOR:
case Opcodes.LXOR:
pop(4);
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.LSHL:
case Opcodes.LSHR:
case Opcodes.LUSHR:
pop(3);
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.I2L:
case Opcodes.F2L:
pop();
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.I2F:
pop();
- push(FLOAT);
+ push(InferredType.FLOAT);
break;
case Opcodes.LCMP:
case Opcodes.DCMPG:
case Opcodes.DCMPL:
pop(4);
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.I2D:
case Opcodes.F2D:
pop();
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
break;
case Opcodes.F2I:
case Opcodes.ARRAYLENGTH:
pop();
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.FALOAD:
case Opcodes.FADD:
@@ -320,7 +315,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Opcodes.L2F:
case Opcodes.D2F:
pop(2);
- push(FLOAT);
+ push(InferredType.FLOAT);
break;
case Opcodes.DADD:
@@ -329,8 +324,8 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Opcodes.DDIV:
case Opcodes.DREM:
pop(4);
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
break;
default:
throw new RuntimeException("Unhandled opcode " + opcode);
@@ -343,7 +338,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
switch (opcode) {
case Opcodes.BIPUSH:
case Opcodes.SIPUSH:
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.NEWARRAY:
pop();
@@ -386,18 +381,18 @@ public final class BytecodeTypeInference extends MethodVisitor {
public void visitVarInsn(int opcode, int var) {
switch (opcode) {
case Opcodes.ILOAD:
- push(INT);
+ push(InferredType.INT);
break;
case Opcodes.LLOAD:
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
break;
case Opcodes.FLOAD:
- push(FLOAT);
+ push(InferredType.FLOAT);
break;
case Opcodes.DLOAD:
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
break;
case Opcodes.ALOAD:
push(getLocalVariableType(var));
@@ -415,7 +410,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
{
InferredType type = pop(2);
setLocalVariableTypes(var, type);
- setLocalVariableTypes(var + 1, TOP);
+ setLocalVariableTypes(var + 1, InferredType.TOP);
break;
}
case Opcodes.RET:
@@ -443,7 +438,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
break;
case Opcodes.INSTANCEOF:
pop();
- push(INT);
+ push(InferredType.INT);
break;
default:
throw new RuntimeException("Unhandled opcode " + opcode);
@@ -551,15 +546,15 @@ public final class BytecodeTypeInference extends MethodVisitor {
@Override
public void visitLdcInsn(Object cst) {
if (cst instanceof Integer) {
- push(INT);
+ push(InferredType.INT);
} else if (cst instanceof Float) {
- push(FLOAT);
+ push(InferredType.FLOAT);
} else if (cst instanceof Long) {
- push(LONG);
- push(TOP);
+ push(InferredType.LONG);
+ push(InferredType.TOP);
} else if (cst instanceof Double) {
- push(DOUBLE);
- push(TOP);
+ push(InferredType.DOUBLE);
+ push(InferredType.TOP);
} else if (cst instanceof String) {
pushDescriptor("Ljava/lang/String;");
} else if (cst instanceof Type) {
@@ -574,7 +569,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
@Override
public void visitIincInsn(int var, int increment) {
- setLocalVariableTypes(var, INT);
+ setLocalVariableTypes(var, InferredType.INT);
super.visitIincInsn(var, increment);
}
@@ -693,18 +688,18 @@ public final class BytecodeTypeInference extends MethodVisitor {
case 'B':
case 'S':
case 'I':
- push(INT);
+ push(InferredType.INT);
break;
case 'F':
- push(FLOAT);
+ push(InferredType.FLOAT);
break;
case 'D':
push(InferredType.DOUBLE);
- push(TOP);
+ push(InferredType.TOP);
break;
case 'J':
push(InferredType.LONG);
- push(TOP);
+ push(InferredType.TOP);
break;
case 'L':
case '[':
@@ -749,7 +744,7 @@ public final class BytecodeTypeInference extends MethodVisitor {
private final void setLocalVariableTypes(int index, InferredType type) {
while (localVariableSlots.size() <= index) {
- localVariableSlots.add(TOP);
+ localVariableSlots.add(InferredType.TOP);
}
localVariableSlots.set(index, type);
}
@@ -802,18 +797,18 @@ public final class BytecodeTypeInference extends MethodVisitor {
case Type.CHAR:
case Type.SHORT:
case Type.INT:
- types.add(INT);
+ types.add(InferredType.INT);
break;
case Type.FLOAT:
- types.add(FLOAT);
+ types.add(InferredType.FLOAT);
break;
case Type.LONG:
- types.add(LONG);
- types.add(TOP);
+ types.add(InferredType.LONG);
+ types.add(InferredType.TOP);
break;
case Type.DOUBLE:
- types.add(DOUBLE);
- types.add(TOP);
+ types.add(InferredType.DOUBLE);
+ types.add(InferredType.TOP);
break;
case Type.ARRAY:
case Type.OBJECT:
@@ -850,11 +845,11 @@ public final class BytecodeTypeInference extends MethodVisitor {
/** Convert the type in stack map frame to inference type. */
private InferredType convertTypeInStackMapFrame(Object typeInStackMapFrame) {
if (typeInStackMapFrame == Opcodes.TOP) {
- return TOP;
+ return InferredType.TOP;
} else if (typeInStackMapFrame == Opcodes.INTEGER) {
- return INT;
+ return InferredType.INT;
} else if (typeInStackMapFrame == Opcodes.FLOAT) {
- return FLOAT;
+ return InferredType.FLOAT;
} else if (typeInStackMapFrame == Opcodes.DOUBLE) {
return InferredType.DOUBLE;
} else if (typeInStackMapFrame == Opcodes.LONG) {