summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordelphinemartin <delphinemartin@google.com>2014-04-25 16:59:05 +0200
committerdelphinemartin <delphinemartin@google.com>2014-05-15 17:58:39 +0200
commitc722d62c1e71c4c13533941fc098f45a84ed7bec (patch)
treebab857af7fd858edfc5f14bbac97895f7881a8ef
parent5be05897b0e495114a966a2930f057d287f269f4 (diff)
downloadtoolchain_jack-c722d62c1e71c4c13533941fc098f45a84ed7bec.zip
toolchain_jack-c722d62c1e71c4c13533941fc098f45a84ed7bec.tar.gz
toolchain_jack-c722d62c1e71c4c13533941fc098f45a84ed7bec.tar.bz2
Splitted OriginalTypeInfo in two markers
OriginalTypeInfo is now replaced by GenericSignature and SourceName markers. It allows use to remove null values and schedulable can express more specific constraints. Change-Id: I790d72df0ad13090fcfb98f290ea140c667c1653
-rw-r--r--jack/src/com/android/jack/backend/dex/annotations/ReflectAnnotationsAdder.java27
-rw-r--r--jack/src/com/android/jack/backend/dex/rop/RopRegisterManager.java9
-rw-r--r--jack/src/com/android/jack/ecj/loader/jast/JAstBinaryType.java18
-rw-r--r--jack/src/com/android/jack/ecj/loader/jast/LoaderUtils.java9
-rw-r--r--jack/src/com/android/jack/ir/JackFormatIr.java6
-rw-r--r--jack/src/com/android/jack/ir/JavaSourceIr.java6
-rw-r--r--jack/src/com/android/jack/ir/ast/marker/GenericSignature.java (renamed from jack/src/com/android/jack/ir/ast/marker/OriginalTypeInfo.java)30
-rw-r--r--jack/src/com/android/jack/ir/ast/marker/SourceName.java52
-rw-r--r--jack/src/com/android/jack/ir/impl/EcjSourceTypeLoader.java11
-rw-r--r--jack/src/com/android/jack/ir/impl/GwtAstBuilder.java6
-rw-r--r--jack/src/com/android/jack/ir/impl/ReferenceMapper.java16
-rw-r--r--jack/src/com/android/jack/jayce/v0002/NodeFactory.java12
-rw-r--r--jack/src/com/android/jack/jayce/v0002/Version.java4
-rw-r--r--jack/src/com/android/jack/jayce/v0002/io/Token.java24
-rw-r--r--jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java (renamed from jack/src/com/android/jack/jayce/v0002/nodes/NOriginalTypeInfo.java)29
-rw-r--r--jack/src/com/android/jack/jayce/v0002/nodes/NSourceName.java71
-rw-r--r--jack/src/com/android/jack/shrob/obfuscation/annotation/FieldGenericSignatureRemover.java9
-rw-r--r--jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java9
-rw-r--r--jack/src/com/android/jack/shrob/obfuscation/annotation/MethodGenericSignatureRemover.java9
-rw-r--r--jack/src/com/android/jack/shrob/obfuscation/annotation/TypeGenericSignatureRemover.java9
-rw-r--r--jack/src/com/android/jack/transformations/ast/string/FieldGenericSignatureSplitter.java20
-rw-r--r--jack/src/com/android/jack/transformations/ast/string/MethodGenericSignatureSplitter.java20
-rw-r--r--jack/src/com/android/jack/transformations/ast/string/TypeGenericSignatureSplitter.java6
23 files changed, 236 insertions, 176 deletions
diff --git a/jack/src/com/android/jack/backend/dex/annotations/ReflectAnnotationsAdder.java b/jack/src/com/android/jack/backend/dex/annotations/ReflectAnnotationsAdder.java
index a6d3b50..ad6c9bc 100644
--- a/jack/src/com/android/jack/backend/dex/annotations/ReflectAnnotationsAdder.java
+++ b/jack/src/com/android/jack/backend/dex/annotations/ReflectAnnotationsAdder.java
@@ -43,7 +43,8 @@ import com.android.jack.ir.ast.JStringLiteral;
import com.android.jack.ir.ast.JType;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.ast.MethodKind;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
import com.android.jack.lookup.CommonTypes;
import com.android.jack.lookup.JLookup;
@@ -77,8 +78,9 @@ import javax.annotation.Nonnull;
@Transform(add = {ReflectAnnotations.class, JAnnotationLiteral.class, JNameValuePair.class,
JClassLiteral.class, JStringLiteral.class, JMethodLiteral.class, JArrayLiteral.class,
JNullLiteral.class, JIntLiteral.class, ClassAnnotationSchedulingSeparator.SeparatorTag.class})
-@Constraint(need = {OriginalTypeInfo.class, FinalNames.class})
-@Protect(add = OriginalTypeInfo.class, unprotect = @With(remove = ReflectAnnotations.class))
+@Constraint(need = {GenericSignature.class, SourceName.class, FinalNames.class})
+@Protect(add = {GenericSignature.class, SourceName.class},
+ unprotect = @With(remove = ReflectAnnotations.class))
public class ReflectAnnotationsAdder implements RunnableSchedulable<JDefinedClassOrInterface> {
private class Visitor extends JVisitor {
@@ -149,23 +151,17 @@ public class ReflectAnnotationsAdder implements RunnableSchedulable<JDefinedClas
addEnclosingClass(x);
}
}
- OriginalTypeInfo marker = x.getMarker(OriginalTypeInfo.class);
- String genericSignature = null;
+ GenericSignature marker = x.getMarker(GenericSignature.class);
if (marker != null) {
- genericSignature = marker.getGenericSignature();
- }
- if (genericSignature != null) {
- addSignature(x, genericSignature, x.getSourceInfo());
+ addSignature(x, marker.getGenericSignature(), x.getSourceInfo());
}
}
@Override
public void endVisit(@Nonnull JField x) {
- OriginalTypeInfo marker = x.getMarker(OriginalTypeInfo.class);
+ GenericSignature marker = x.getMarker(GenericSignature.class);
if (marker != null) {
- String genericSignature = marker.getGenericSignature();
- assert genericSignature != null;
- addSignature(x, genericSignature, x.getSourceInfo());
+ addSignature(x, marker.getGenericSignature(), x.getSourceInfo());
}
}
@@ -174,7 +170,7 @@ public class ReflectAnnotationsAdder implements RunnableSchedulable<JDefinedClas
if (addAnnotationThrows) {
addThrows(x);
}
- OriginalTypeInfo marker = x.getMarker(OriginalTypeInfo.class);
+ GenericSignature marker = x.getMarker(GenericSignature.class);
if (marker != null) {
String genericSignature = marker.getGenericSignature();
if (genericSignature != null) {
@@ -255,10 +251,9 @@ public class ReflectAnnotationsAdder implements RunnableSchedulable<JDefinedClas
private void addInnerClass(@Nonnull JDefinedClassOrInterface innerType) {
SourceInfo info = innerType.getSourceInfo();
JAnnotationLiteral annotation = createAnnotation(innerType, innerAnnotation, info);
- OriginalTypeInfo marker = innerType.getMarker(OriginalTypeInfo.class);
+ SourceName marker = innerType.getMarker(SourceName.class);
assert marker != null;
String innerShortName = marker.getSourceName();
- assert innerShortName != null;
JLiteral newValue;
if (!innerShortName.isEmpty()) {
newValue = new JStringLiteral(info, innerShortName);
diff --git a/jack/src/com/android/jack/backend/dex/rop/RopRegisterManager.java b/jack/src/com/android/jack/backend/dex/rop/RopRegisterManager.java
index 88ad83b..f30753f 100644
--- a/jack/src/com/android/jack/backend/dex/rop/RopRegisterManager.java
+++ b/jack/src/com/android/jack/backend/dex/rop/RopRegisterManager.java
@@ -27,7 +27,7 @@ import com.android.jack.ir.ast.JThisRef;
import com.android.jack.ir.ast.JType;
import com.android.jack.ir.ast.JVariable;
import com.android.jack.ir.ast.JVariableRef;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import java.util.ArrayList;
@@ -134,12 +134,9 @@ class RopRegisterManager {
RegisterSpec reg;
if (emitDebugInfo && (emitSyntheticDebugInfo || !var.isSynthetic())) {
CstString cstSignature = null;
- OriginalTypeInfo infoMarker = var.getMarker(OriginalTypeInfo.class);
+ GenericSignature infoMarker = var.getMarker(GenericSignature.class);
if (infoMarker != null) {
- String genericSignature = infoMarker.getGenericSignature();
- if (genericSignature != null) {
- cstSignature = new CstString(genericSignature);
- }
+ cstSignature = new CstString(infoMarker.getGenericSignature());
}
LocalItem localItem =
LocalItem.make(new CstString(var.getName()), RopHelper.getCstType(type), cstSignature);
diff --git a/jack/src/com/android/jack/ecj/loader/jast/JAstBinaryType.java b/jack/src/com/android/jack/ecj/loader/jast/JAstBinaryType.java
index 320ae6a..33b5486 100644
--- a/jack/src/com/android/jack/ecj/loader/jast/JAstBinaryType.java
+++ b/jack/src/com/android/jack/ecj/loader/jast/JAstBinaryType.java
@@ -33,7 +33,7 @@ import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JModifier;
import com.android.jack.ir.ast.JNameValuePair;
import com.android.jack.ir.ast.JNullLiteral;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.ir.formatter.TypeFormatter;
import com.android.jack.util.NamingTools;
@@ -280,12 +280,9 @@ class JAstBinaryType implements IBinaryType {
@Override
public char[] getSourceName() {
- OriginalTypeInfo typeInfo = jDeclaredType.getMarker(OriginalTypeInfo.class);
+ SourceName typeInfo = jDeclaredType.getMarker(SourceName.class);
if (typeInfo != null) {
- String sourceName = typeInfo.getSourceName();
- if (sourceName != null) {
- return sourceName.toCharArray();
- }
+ return typeInfo.getSourceName().toCharArray();
}
char[] sourceNameArray;
@@ -360,12 +357,9 @@ class JAstBinaryType implements IBinaryType {
@Override
public boolean isAnonymous() {
boolean isAnonymous = false;
- OriginalTypeInfo originalTypeInfo = jDeclaredType.getMarker(OriginalTypeInfo.class);
- if (originalTypeInfo != null) {
- String sourceName = originalTypeInfo.getSourceName();
- if (sourceName != null) {
- isAnonymous = sourceName.isEmpty();
- }
+ SourceName sourceNameInfo = jDeclaredType.getMarker(SourceName.class);
+ if (sourceNameInfo != null) {
+ isAnonymous = sourceNameInfo.getSourceName().isEmpty();
} else {
JAnnotationLiteral enclosingAnnotation =
AnnotationUtils.getAnnotation(jDeclaredType, AnnotationUtils.INNER_CLASS_ANNOTATION);
diff --git a/jack/src/com/android/jack/ecj/loader/jast/LoaderUtils.java b/jack/src/com/android/jack/ecj/loader/jast/LoaderUtils.java
index 179366d..03b0300 100644
--- a/jack/src/com/android/jack/ecj/loader/jast/LoaderUtils.java
+++ b/jack/src/com/android/jack/ecj/loader/jast/LoaderUtils.java
@@ -36,7 +36,7 @@ import com.android.jack.ir.ast.JNameValuePair;
import com.android.jack.ir.ast.JNode;
import com.android.jack.ir.ast.JNullLiteral;
import com.android.jack.ir.ast.JShortLiteral;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.formatter.BinaryQualifiedNameFormatter;
import com.android.jack.ir.formatter.BinarySignatureFormatter;
import com.android.jack.ir.formatter.TypeAndMethodFormatter;
@@ -133,12 +133,9 @@ class LoaderUtils {
@CheckForNull
static <T extends JNode & Annotable> char[] getGenericSignature(@Nonnull T annotableNode) {
- OriginalTypeInfo typeInfo = annotableNode.getMarker(OriginalTypeInfo.class);
+ GenericSignature typeInfo = annotableNode.getMarker(GenericSignature.class);
if (typeInfo != null) {
- String genericSignature = typeInfo.getGenericSignature();
- if (genericSignature != null) {
- return genericSignature.toCharArray();
- }
+ return typeInfo.getGenericSignature().toCharArray();
}
JAnnotationLiteral signatureAnnotation =
diff --git a/jack/src/com/android/jack/ir/JackFormatIr.java b/jack/src/com/android/jack/ir/JackFormatIr.java
index f925c2a..ceaaa14 100644
--- a/jack/src/com/android/jack/ir/JackFormatIr.java
+++ b/jack/src/com/android/jack/ir/JackFormatIr.java
@@ -109,7 +109,8 @@ import com.android.jack.ir.ast.JSynchronizedBlock;
import com.android.jack.ir.ast.JThisRef;
import com.android.jack.ir.ast.JThrowStatement;
import com.android.jack.ir.ast.JTryStatement;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.optimizations.NotSimplifier;
import com.android.jack.transformations.ast.BooleanTestOutsideIf;
@@ -235,7 +236,8 @@ import com.android.sched.item.Name;
MultiDimensionNewArray.class,
NoImplicitBlock.class,
NotSimplifier.NotExpressionsSimplified.class,
- OriginalTypeInfo.class,
+ GenericSignature.class,
+ SourceName.class,
ThisRefTypeInfo.class,
UselessSwitches.class})
public class JackFormatIr implements AbstractComponent {
diff --git a/jack/src/com/android/jack/ir/JavaSourceIr.java b/jack/src/com/android/jack/ir/JavaSourceIr.java
index e17a8e0..3c8a170 100644
--- a/jack/src/com/android/jack/ir/JavaSourceIr.java
+++ b/jack/src/com/android/jack/ir/JavaSourceIr.java
@@ -131,7 +131,8 @@ import com.android.jack.ir.ast.JThisRef;
import com.android.jack.ir.ast.JThrowStatement;
import com.android.jack.ir.ast.JTryStatement;
import com.android.jack.ir.ast.JWhileStatement;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
import com.android.jack.transformations.EmptyClinit;
@@ -282,7 +283,8 @@ import com.android.sched.item.Name;
JVoidType.class,
JWhileStatement.class,
MultiDimensionNewArray.class,
- OriginalTypeInfo.class,
+ GenericSignature.class,
+ SourceName.class,
ThisRefTypeInfo.class,
ThrownExceptionMarker.class,
UselessSwitches.class})
diff --git a/jack/src/com/android/jack/ir/ast/marker/OriginalTypeInfo.java b/jack/src/com/android/jack/ir/ast/marker/GenericSignature.java
index 4d30eb0..142db99 100644
--- a/jack/src/com/android/jack/ir/ast/marker/OriginalTypeInfo.java
+++ b/jack/src/com/android/jack/ir/ast/marker/GenericSignature.java
@@ -24,42 +24,30 @@ import com.android.sched.item.Description;
import com.android.sched.marker.Marker;
import com.android.sched.marker.ValidOn;
-import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
/**
- * This {@link Marker} holds generic signature and source name retrieved from ecj.
+ * This {@link Marker} holds generic signature retrieved from ecj.
*/
-@Description("Holds generic signature and source name retrieved from ecj")
+@Description("Holds generic signature retrieved from ecj")
@ValidOn({JDefinedClassOrInterface.class, JVariable.class, JMethod.class, JField.class})
-public class OriginalTypeInfo implements Marker {
+public class GenericSignature implements Marker {
- @CheckForNull
+ @Nonnull
private CharSequence genericSignature;
- @CheckForNull
- private String sourceName;
-
- public void setGenericSignature(@CheckForNull CharSequence genericSignature) {
+ public GenericSignature(@Nonnull CharSequence genericSignature) {
this.genericSignature = genericSignature;
}
- public void setSourceName(@Nonnull String sourceName) {
- this.sourceName = sourceName;
- }
- @CheckForNull
- public String getSourceName() {
- return sourceName;
+ public void setGenericSignature(@Nonnull CharSequence genericSignature) {
+ this.genericSignature = genericSignature;
}
- @CheckForNull
+ @Nonnull
public String getGenericSignature() {
- if (genericSignature == null) {
- return null;
- } else {
- return genericSignature.toString();
- }
+ return genericSignature.toString();
}
@Override
diff --git a/jack/src/com/android/jack/ir/ast/marker/SourceName.java b/jack/src/com/android/jack/ir/ast/marker/SourceName.java
new file mode 100644
index 0000000..b3ab155
--- /dev/null
+++ b/jack/src/com/android/jack/ir/ast/marker/SourceName.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (C) 2012 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 com.android.jack.ir.ast.marker;
+
+import com.android.jack.ir.ast.JDefinedClassOrInterface;
+import com.android.jack.ir.ast.JField;
+import com.android.jack.ir.ast.JMethod;
+import com.android.jack.ir.ast.JVariable;
+import com.android.sched.item.Description;
+import com.android.sched.marker.Marker;
+import com.android.sched.marker.ValidOn;
+
+import javax.annotation.Nonnull;
+
+/**
+ * This {@link Marker} holds source name retrieved from ecj.
+ */
+@Description("Holds source name retrieved from ecj")
+@ValidOn({JDefinedClassOrInterface.class, JVariable.class, JMethod.class, JField.class})
+public class SourceName implements Marker {
+
+ @Nonnull
+ private final String sourceName;
+
+ public SourceName(@Nonnull String sourceName) {
+ this.sourceName = sourceName;
+ }
+
+ @Nonnull
+ public String getSourceName() {
+ return sourceName;
+ }
+
+ @Override
+ public Marker cloneIfNeeded() {
+ return this;
+ }
+}
diff --git a/jack/src/com/android/jack/ir/impl/EcjSourceTypeLoader.java b/jack/src/com/android/jack/ir/impl/EcjSourceTypeLoader.java
index a06934e..6e202ad 100644
--- a/jack/src/com/android/jack/ir/impl/EcjSourceTypeLoader.java
+++ b/jack/src/com/android/jack/ir/impl/EcjSourceTypeLoader.java
@@ -28,7 +28,8 @@ import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JModifier;
import com.android.jack.ir.ast.JPackage;
import com.android.jack.ir.ast.JType;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.load.ClassOrInterfaceLoader;
import com.android.jack.lookup.JLookup;
import com.android.jack.util.NamingTools;
@@ -238,16 +239,14 @@ public class EcjSourceTypeLoader implements ClassOrInterfaceLoader {
return;
}
SourceTypeBinding binding = getBinding();
- OriginalTypeInfo marker = new OriginalTypeInfo();
char [] genSignature = binding.genericSignature();
if (genSignature != null) {
if (CharOperation.contains('<', genSignature)) {
assert CharOperation.contains('>', genSignature);
- marker.setGenericSignature(ReferenceMapper.intern(genSignature));
+ loaded.addMarker(new GenericSignature(ReferenceMapper.intern(genSignature)));
}
}
- marker.setSourceName(new String(binding.sourceName));
- loaded.addMarker(marker);
+ loaded.addMarker(new SourceName(new String(binding.sourceName)));
markLoaded(Scope.MARKERS);
}
}
@@ -255,7 +254,7 @@ public class EcjSourceTypeLoader implements ClassOrInterfaceLoader {
@Override
public void ensureMarker(@Nonnull JDefinedClassOrInterface loaded,
@Nonnull Class<? extends Marker> cls) {
- if (cls == OriginalTypeInfo.class) {
+ if (cls == GenericSignature.class || cls == SourceName.class) {
ensureMarkers(loaded);
}
}
diff --git a/jack/src/com/android/jack/ir/impl/GwtAstBuilder.java b/jack/src/com/android/jack/ir/impl/GwtAstBuilder.java
index 5b788f3..62862d7 100644
--- a/jack/src/com/android/jack/ir/impl/GwtAstBuilder.java
+++ b/jack/src/com/android/jack/ir/impl/GwtAstBuilder.java
@@ -117,7 +117,7 @@ import com.android.jack.ir.ast.JValueLiteral;
import com.android.jack.ir.ast.JVariable;
import com.android.jack.ir.ast.JWhileStatement;
import com.android.jack.ir.ast.MethodKind;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.lookup.CommonTypes;
import com.android.jack.util.NamingTools;
@@ -2309,9 +2309,7 @@ public class GwtAstBuilder {
// Check if the generic signature really contains generic types i.e. is different from the
// non-generic signature
if (!CharOperation.equals(signature, genericSignature)) {
- OriginalTypeInfo infoMarker = new OriginalTypeInfo();
- infoMarker.setGenericSignature(ReferenceMapper.intern(genericSignature));
- newLocal.addMarker(infoMarker);
+ newLocal.addMarker(new GenericSignature(ReferenceMapper.intern(genericSignature)));
}
curMethod.locals.put(b, newLocal);
return newLocal;
diff --git a/jack/src/com/android/jack/ir/impl/ReferenceMapper.java b/jack/src/com/android/jack/ir/impl/ReferenceMapper.java
index 688396e..f698020 100644
--- a/jack/src/com/android/jack/ir/impl/ReferenceMapper.java
+++ b/jack/src/com/android/jack/ir/impl/ReferenceMapper.java
@@ -37,7 +37,7 @@ import com.android.jack.ir.ast.JRetentionPolicy;
import com.android.jack.ir.ast.JType;
import com.android.jack.ir.ast.JTypeLookupException;
import com.android.jack.ir.ast.MethodKind;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
import com.android.jack.lookup.CommonTypes;
import com.android.jack.lookup.JLookup;
@@ -275,11 +275,9 @@ public class ReferenceMapper {
method.setSynthetic();
}
enclosingType.addMethod(method);
- char [] genSignature = b.genericSignature();
+ char[] genSignature = b.genericSignature();
if (genSignature != null) {
- OriginalTypeInfo marker = new OriginalTypeInfo();
- marker.setGenericSignature(ReferenceMapper.intern(genSignature));
- method.addMarker(marker);
+ method.addMarker(new GenericSignature(intern(genSignature)));
}
method.updateParents(enclosingType);
@@ -318,9 +316,7 @@ public class ReferenceMapper {
// Check if the generic signature really contains generic types i.e. is different from the
// non-generic signature
if (!genericSignature.equals(Jack.getLookupFormatter().getName(type))) {
- OriginalTypeInfo infoMarker = new OriginalTypeInfo();
- infoMarker.setGenericSignature(ReferenceMapper.intern(genericSignature));
- param.addMarker(infoMarker);
+ param.addMarker(new GenericSignature(intern(genericSignature)));
}
}
method.addParam(param);
@@ -373,9 +369,7 @@ public class ReferenceMapper {
enclosingType.addField(field);
char [] genSignature = binding.genericSignature();
if (genSignature != null) {
- OriginalTypeInfo marker = new OriginalTypeInfo();
- marker.setGenericSignature(ReferenceMapper.intern(genSignature));
- field.addMarker(marker);
+ field.addMarker(new GenericSignature(intern(genSignature)));
}
field.updateParents(enclosingType);
diff --git a/jack/src/com/android/jack/jayce/v0002/NodeFactory.java b/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
index 1373ede..10f550e 100644
--- a/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
+++ b/jack/src/com/android/jack/jayce/v0002/NodeFactory.java
@@ -129,7 +129,8 @@ import com.android.jack.ir.ast.JUnaryOperation;
import com.android.jack.ir.ast.JUnlock;
import com.android.jack.ir.ast.JVisitor;
import com.android.jack.ir.ast.JWhileStatement;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
+import com.android.jack.ir.ast.marker.SourceName;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.ir.ast.marker.ThrownExceptionMarker;
import com.android.jack.jayce.v0002.nodes.NAbsentArrayDimension;
@@ -187,6 +188,7 @@ import com.android.jack.jayce.v0002.nodes.NFieldInitializer;
import com.android.jack.jayce.v0002.nodes.NFieldRef;
import com.android.jack.jayce.v0002.nodes.NFloatLiteral;
import com.android.jack.jayce.v0002.nodes.NForStatement;
+import com.android.jack.jayce.v0002.nodes.NGenericSignature;
import com.android.jack.jayce.v0002.nodes.NGoto;
import com.android.jack.jayce.v0002.nodes.NGtOperation;
import com.android.jack.jayce.v0002.nodes.NGteOperation;
@@ -216,7 +218,6 @@ import com.android.jack.jayce.v0002.nodes.NNewArray;
import com.android.jack.jayce.v0002.nodes.NNewInstance;
import com.android.jack.jayce.v0002.nodes.NNullLiteral;
import com.android.jack.jayce.v0002.nodes.NOrOperation;
-import com.android.jack.jayce.v0002.nodes.NOriginalTypeInfo;
import com.android.jack.jayce.v0002.nodes.NParameter;
import com.android.jack.jayce.v0002.nodes.NParameterRef;
import com.android.jack.jayce.v0002.nodes.NPostfixDecOperation;
@@ -233,6 +234,7 @@ import com.android.jack.jayce.v0002.nodes.NShlOperation;
import com.android.jack.jayce.v0002.nodes.NShortLiteral;
import com.android.jack.jayce.v0002.nodes.NShrOperation;
import com.android.jack.jayce.v0002.nodes.NShruOperation;
+import com.android.jack.jayce.v0002.nodes.NSourceName;
import com.android.jack.jayce.v0002.nodes.NStringLiteral;
import com.android.jack.jayce.v0002.nodes.NSubOperation;
import com.android.jack.jayce.v0002.nodes.NSwitchStatement;
@@ -778,8 +780,10 @@ public class NodeFactory {
@Nonnull
private NMarker createMarkerNode(@Nonnull Marker from) {
- if (from instanceof OriginalTypeInfo) {
- return new NOriginalTypeInfo();
+ if (from instanceof GenericSignature) {
+ return new NGenericSignature();
+ } else if (from instanceof SourceName) {
+ return new NSourceName();
} else if (from instanceof ThisRefTypeInfo) {
return new NThisRefTypeInfo();
} else if (from instanceof ThrownExceptionMarker) {
diff --git a/jack/src/com/android/jack/jayce/v0002/Version.java b/jack/src/com/android/jack/jayce/v0002/Version.java
index 223433c..6f80be9 100644
--- a/jack/src/com/android/jack/jayce/v0002/Version.java
+++ b/jack/src/com/android/jack/jayce/v0002/Version.java
@@ -21,7 +21,7 @@ package com.android.jack.jayce.v0002;
*/
public class Version {
- public static final int MINOR_MIN = 11;
+ public static final int MINOR_MIN = 12;
- public static final int CURRENT_MINOR = 11;
+ public static final int CURRENT_MINOR = 12;
}
diff --git a/jack/src/com/android/jack/jayce/v0002/io/Token.java b/jack/src/com/android/jack/jayce/v0002/io/Token.java
index 9270a08..6d5fe2f 100644
--- a/jack/src/com/android/jack/jayce/v0002/io/Token.java
+++ b/jack/src/com/android/jack/jayce/v0002/io/Token.java
@@ -73,6 +73,7 @@ import com.android.jack.jayce.v0002.nodes.NFieldInitializer;
import com.android.jack.jayce.v0002.nodes.NFieldRef;
import com.android.jack.jayce.v0002.nodes.NFloatLiteral;
import com.android.jack.jayce.v0002.nodes.NForStatement;
+import com.android.jack.jayce.v0002.nodes.NGenericSignature;
import com.android.jack.jayce.v0002.nodes.NGoto;
import com.android.jack.jayce.v0002.nodes.NGtOperation;
import com.android.jack.jayce.v0002.nodes.NGteOperation;
@@ -101,7 +102,6 @@ import com.android.jack.jayce.v0002.nodes.NNewArray;
import com.android.jack.jayce.v0002.nodes.NNewInstance;
import com.android.jack.jayce.v0002.nodes.NNullLiteral;
import com.android.jack.jayce.v0002.nodes.NOrOperation;
-import com.android.jack.jayce.v0002.nodes.NOriginalTypeInfo;
import com.android.jack.jayce.v0002.nodes.NParameter;
import com.android.jack.jayce.v0002.nodes.NParameterRef;
import com.android.jack.jayce.v0002.nodes.NPostfixDecOperation;
@@ -118,6 +118,7 @@ import com.android.jack.jayce.v0002.nodes.NShlOperation;
import com.android.jack.jayce.v0002.nodes.NShortLiteral;
import com.android.jack.jayce.v0002.nodes.NShrOperation;
import com.android.jack.jayce.v0002.nodes.NShruOperation;
+import com.android.jack.jayce.v0002.nodes.NSourceName;
import com.android.jack.jayce.v0002.nodes.NStringLiteral;
import com.android.jack.jayce.v0002.nodes.NSubOperation;
import com.android.jack.jayce.v0002.nodes.NSwitchStatement;
@@ -540,6 +541,13 @@ public enum Token {
return new NForStatement();
}
},
+ GENERIC_SIGNATURE("generic-signature", NodeLevel.TYPES) {
+ @Override
+ @Nonnull
+ public NNode newNode() {
+ return new NGenericSignature();
+ }
+ },
GOTO("goto") {
@Nonnull
@Override
@@ -736,13 +744,6 @@ public enum Token {
return new NOrOperation();
}
},
- ORIGINAL_TYPE_INFO("type-info", NodeLevel.TYPES) {
- @Override
- @Nonnull
- public NNode newNode() {
- return new NOriginalTypeInfo();
- }
- },
PARAMETER("parameter", NodeLevel.STRUCTURE) {
@Nonnull
@Override
@@ -855,6 +856,13 @@ public enum Token {
return new NShruOperation();
}
},
+ SOURCE_NAME("source-name", NodeLevel.TYPES) {
+ @Override
+ @Nonnull
+ public NNode newNode() {
+ return new NSourceName();
+ }
+ },
SUB_OPERATION("-") {
@Nonnull
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NOriginalTypeInfo.java b/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java
index f766fb0..2a4780e 100644
--- a/jack/src/com/android/jack/jayce/v0002/nodes/NOriginalTypeInfo.java
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NGenericSignature.java
@@ -16,7 +16,7 @@
package com.android.jack.jayce.v0002.nodes;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.jayce.v0002.io.ExportSession;
import com.android.jack.jayce.v0002.io.ImportHelper;
import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
@@ -29,50 +29,37 @@ import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
/**
- * This {@link NMarker} holds generic signature and source name retrieved from ecj.
+ * This {@link NMarker} holds generic signature retrieved from ecj.
*/
-public class NOriginalTypeInfo extends NMarker {
+public class NGenericSignature extends NMarker {
@Nonnull
- public static final Token TOKEN = Token.ORIGINAL_TYPE_INFO;
+ public static final Token TOKEN = Token.GENERIC_SIGNATURE;
@CheckForNull
public String genericSignature;
- @CheckForNull
- public String sourceName;
-
@Override
public void importFromJast(@Nonnull ImportHelper loader, @Nonnull Object node) {
- OriginalTypeInfo marker = (OriginalTypeInfo) node;
+ GenericSignature marker = (GenericSignature) node;
genericSignature = marker.getGenericSignature();
- sourceName = marker.getSourceName();
}
@Override
@Nonnull
- public OriginalTypeInfo exportAsJast(@Nonnull ExportSession exportSession) {
- OriginalTypeInfo marker = new OriginalTypeInfo();
- if (genericSignature != null) {
- marker.setGenericSignature(genericSignature);
- }
- if (sourceName != null) {
- marker.setSourceName(sourceName);
- }
-
- return marker;
+ public GenericSignature exportAsJast(@Nonnull ExportSession exportSession) {
+ assert genericSignature != null;
+ return new GenericSignature(genericSignature);
}
@Override
public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
out.writeString(genericSignature);
- out.writeString(sourceName);
}
@Override
public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
genericSignature = in.readString();
- sourceName = in.readString();
}
@Override
diff --git a/jack/src/com/android/jack/jayce/v0002/nodes/NSourceName.java b/jack/src/com/android/jack/jayce/v0002/nodes/NSourceName.java
new file mode 100644
index 0000000..f1be9ec
--- /dev/null
+++ b/jack/src/com/android/jack/jayce/v0002/nodes/NSourceName.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (C) 2013 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 com.android.jack.jayce.v0002.nodes;
+
+import com.android.jack.ir.ast.marker.SourceName;
+import com.android.jack.jayce.v0002.io.ExportSession;
+import com.android.jack.jayce.v0002.io.ImportHelper;
+import com.android.jack.jayce.v0002.io.JayceInternalReaderImpl;
+import com.android.jack.jayce.v0002.io.JayceInternalWriterImpl;
+import com.android.jack.jayce.v0002.io.Token;
+
+import java.io.IOException;
+
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
+
+/**
+ * This {@link NMarker} holds source name retrieved from ecj.
+ */
+public class NSourceName extends NMarker {
+
+ @Nonnull
+ public static final Token TOKEN = Token.SOURCE_NAME;
+
+ @CheckForNull
+ public String sourceName;
+
+ @Override
+ public void importFromJast(@Nonnull ImportHelper loader, @Nonnull Object node) {
+ SourceName marker = (SourceName) node;
+ sourceName = marker.getSourceName();
+ }
+
+ @Override
+ @Nonnull
+ public SourceName exportAsJast(@Nonnull ExportSession exportSession) {
+ assert sourceName != null;
+ return new SourceName(sourceName);
+ }
+
+ @Override
+ public void writeContent(@Nonnull JayceInternalWriterImpl out) throws IOException {
+ out.writeString(sourceName);
+ }
+
+ @Override
+ public void readContent(@Nonnull JayceInternalReaderImpl in) throws IOException {
+ sourceName = in.readString();
+ }
+
+ @Override
+ @Nonnull
+ public Token getToken() {
+ return TOKEN;
+ }
+}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/FieldGenericSignatureRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/FieldGenericSignatureRemover.java
index 3a43fb6..741a569 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/FieldGenericSignatureRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/FieldGenericSignatureRemover.java
@@ -18,12 +18,11 @@ package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.backend.dex.annotations.tag.ReflectAnnotations;
import com.android.jack.ir.ast.JField;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Support;
-import com.android.sched.schedulable.Transform;
import javax.annotation.Nonnull;
@@ -32,16 +31,12 @@ import javax.annotation.Nonnull;
*/
@Description("Removes signatures from fields")
@Constraint(no = ReflectAnnotations.class)
-@Transform(modify = OriginalTypeInfo.class)
@Support(RemoveGenericSignature.class)
public class FieldGenericSignatureRemover implements RunnableSchedulable<JField> {
@Override
public void run(@Nonnull JField field) throws Exception {
- OriginalTypeInfo info = field.getMarker(OriginalTypeInfo.class);
- if (info != null) {
- info.setGenericSignature(null);
- }
+ field.removeMarker(GenericSignature.class);
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java
index 82bd34b..3cc62ec 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/LocalVariableGenericSignatureRemover.java
@@ -19,11 +19,10 @@ package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JVariable;
import com.android.jack.ir.ast.JVisitor;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.sched.item.Description;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Support;
-import com.android.sched.schedulable.Transform;
import javax.annotation.Nonnull;
@@ -31,7 +30,6 @@ import javax.annotation.Nonnull;
* A {@link RunnableSchedulable} that removes signatures from local variables.
*/
@Description("Removes signatures from local variables")
-@Transform(modify = OriginalTypeInfo.class)
@Support(RemoveLocalVariableGenericSignature.class)
public class LocalVariableGenericSignatureRemover implements
RunnableSchedulable<JMethod> {
@@ -39,10 +37,7 @@ public class LocalVariableGenericSignatureRemover implements
private static class Visitor extends JVisitor {
@Override
public boolean visit(@Nonnull JVariable var) {
- OriginalTypeInfo info = var.getMarker(OriginalTypeInfo.class);
- if (info != null) {
- info.setGenericSignature(null);
- }
+ var.removeMarker(GenericSignature.class);
return false;
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/MethodGenericSignatureRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/MethodGenericSignatureRemover.java
index 466b6ba..742a702 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/MethodGenericSignatureRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/MethodGenericSignatureRemover.java
@@ -18,12 +18,11 @@ package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.backend.dex.annotations.tag.ReflectAnnotations;
import com.android.jack.ir.ast.JMethod;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Support;
-import com.android.sched.schedulable.Transform;
import javax.annotation.Nonnull;
@@ -32,16 +31,12 @@ import javax.annotation.Nonnull;
*/
@Description("Removes signatures from methods")
@Constraint(no = ReflectAnnotations.class)
-@Transform(modify = OriginalTypeInfo.class)
@Support(RemoveGenericSignature.class)
public class MethodGenericSignatureRemover implements RunnableSchedulable<JMethod> {
@Override
public void run(@Nonnull JMethod method) throws Exception {
- OriginalTypeInfo info = method.getMarker(OriginalTypeInfo.class);
- if (info != null) {
- info.setGenericSignature(null);
- }
+ method.removeMarker(GenericSignature.class);
}
}
diff --git a/jack/src/com/android/jack/shrob/obfuscation/annotation/TypeGenericSignatureRemover.java b/jack/src/com/android/jack/shrob/obfuscation/annotation/TypeGenericSignatureRemover.java
index 613ebcc..28f4f17 100644
--- a/jack/src/com/android/jack/shrob/obfuscation/annotation/TypeGenericSignatureRemover.java
+++ b/jack/src/com/android/jack/shrob/obfuscation/annotation/TypeGenericSignatureRemover.java
@@ -18,12 +18,11 @@ package com.android.jack.shrob.obfuscation.annotation;
import com.android.jack.backend.dex.annotations.tag.ReflectAnnotations;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.sched.item.Description;
import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Support;
-import com.android.sched.schedulable.Transform;
import javax.annotation.Nonnull;
@@ -32,16 +31,12 @@ import javax.annotation.Nonnull;
*/
@Description("Removes signatures from types")
@Constraint(no = ReflectAnnotations.class)
-@Transform(modify = OriginalTypeInfo.class)
@Support(RemoveGenericSignature.class)
public class TypeGenericSignatureRemover implements RunnableSchedulable<JDefinedClassOrInterface> {
@Override
public void run(@Nonnull JDefinedClassOrInterface type) throws Exception {
- OriginalTypeInfo info = type.getMarker(OriginalTypeInfo.class);
- if (info != null) {
- info.setGenericSignature(null);
- }
+ type.removeMarker(GenericSignature.class);
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/FieldGenericSignatureSplitter.java b/jack/src/com/android/jack/transformations/ast/string/FieldGenericSignatureSplitter.java
index 30d8dff..94f35cc 100644
--- a/jack/src/com/android/jack/transformations/ast/string/FieldGenericSignatureSplitter.java
+++ b/jack/src/com/android/jack/transformations/ast/string/FieldGenericSignatureSplitter.java
@@ -18,11 +18,10 @@ package com.android.jack.transformations.ast.string;
import com.android.jack.ir.ast.JField;
import com.android.jack.ir.ast.JType;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.signature.GenericSignatureParser;
import com.android.sched.item.Description;
import com.android.sched.item.Name;
-import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
@@ -34,23 +33,20 @@ import javax.annotation.Nonnull;
*/
@Description("Split field generic signature into more specific string literals.")
@Name("FieldGenericSignatureSplitter")
-@Constraint(need = {OriginalTypeInfo.class})
-@Transform(modify = OriginalTypeInfo.class)
+@Transform(modify = GenericSignature.class)
@Use(GenericSignatureRefiner.class)
public class FieldGenericSignatureSplitter implements RunnableSchedulable<JField> {
@Override
public void run(@Nonnull JField field) throws Exception {
- OriginalTypeInfo marker = field.getMarker(OriginalTypeInfo.class);
+ GenericSignature marker = field.getMarker(GenericSignature.class);
if (marker != null) {
String oldSignature = marker.getGenericSignature();
- if (oldSignature != null) {
- GenericSignatureRefiner parserActions = new GenericSignatureRefiner();
- GenericSignatureParser<JType> parser = new GenericSignatureParser<JType>(parserActions);
- parser.parseFieldSignature(oldSignature);
- assert parserActions.getNewSignature().toString().equals(oldSignature);
- marker.setGenericSignature(parserActions.getNewSignature());
- }
+ GenericSignatureRefiner parserActions = new GenericSignatureRefiner();
+ GenericSignatureParser<JType> parser = new GenericSignatureParser<JType>(parserActions);
+ parser.parseFieldSignature(oldSignature);
+ assert parserActions.getNewSignature().toString().equals(oldSignature);
+ marker.setGenericSignature(parserActions.getNewSignature());
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/MethodGenericSignatureSplitter.java b/jack/src/com/android/jack/transformations/ast/string/MethodGenericSignatureSplitter.java
index 30042db..8edf72b 100644
--- a/jack/src/com/android/jack/transformations/ast/string/MethodGenericSignatureSplitter.java
+++ b/jack/src/com/android/jack/transformations/ast/string/MethodGenericSignatureSplitter.java
@@ -18,11 +18,10 @@ package com.android.jack.transformations.ast.string;
import com.android.jack.ir.ast.JMethod;
import com.android.jack.ir.ast.JType;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.signature.GenericSignatureParser;
import com.android.sched.item.Description;
import com.android.sched.item.Name;
-import com.android.sched.schedulable.Constraint;
import com.android.sched.schedulable.RunnableSchedulable;
import com.android.sched.schedulable.Transform;
import com.android.sched.schedulable.Use;
@@ -34,23 +33,20 @@ import javax.annotation.Nonnull;
*/
@Description("Split method generic signature into more specific string literals.")
@Name("MethodGenericSignatureSplitter")
-@Constraint(need = {OriginalTypeInfo.class})
-@Transform(modify = OriginalTypeInfo.class)
+@Transform(modify = GenericSignature.class)
@Use(GenericSignatureRefiner.class)
public class MethodGenericSignatureSplitter implements RunnableSchedulable<JMethod> {
@Override
public void run(@Nonnull JMethod method) throws Exception {
- OriginalTypeInfo marker = method.getMarker(OriginalTypeInfo.class);
+ GenericSignature marker = method.getMarker(GenericSignature.class);
if (marker != null) {
String oldSignature = marker.getGenericSignature();
- if (oldSignature != null) {
- GenericSignatureRefiner parserActions = new GenericSignatureRefiner();
- GenericSignatureParser<JType> parser = new GenericSignatureParser<JType>(parserActions);
- parser.parseMethodSignature(oldSignature);
- assert parserActions.getNewSignature().toString().equals(oldSignature);
- marker.setGenericSignature(parserActions.getNewSignature());
- }
+ GenericSignatureRefiner parserActions = new GenericSignatureRefiner();
+ GenericSignatureParser<JType> parser = new GenericSignatureParser<JType>(parserActions);
+ parser.parseMethodSignature(oldSignature);
+ assert parserActions.getNewSignature().toString().equals(oldSignature);
+ marker.setGenericSignature(parserActions.getNewSignature());
}
}
diff --git a/jack/src/com/android/jack/transformations/ast/string/TypeGenericSignatureSplitter.java b/jack/src/com/android/jack/transformations/ast/string/TypeGenericSignatureSplitter.java
index 71b3e22..06fca08 100644
--- a/jack/src/com/android/jack/transformations/ast/string/TypeGenericSignatureSplitter.java
+++ b/jack/src/com/android/jack/transformations/ast/string/TypeGenericSignatureSplitter.java
@@ -18,7 +18,7 @@ package com.android.jack.transformations.ast.string;
import com.android.jack.ir.ast.JDefinedClassOrInterface;
import com.android.jack.ir.ast.JType;
-import com.android.jack.ir.ast.marker.OriginalTypeInfo;
+import com.android.jack.ir.ast.marker.GenericSignature;
import com.android.jack.ir.ast.marker.ThisRefTypeInfo;
import com.android.jack.signature.GenericSignatureParser;
import com.android.sched.item.Description;
@@ -36,7 +36,7 @@ import javax.annotation.Nonnull;
*/
@Description("Split type generic signature into more specific string literals.")
@Name("TypeGenericSignatureSplitter")
-@Constraint(need = {OriginalTypeInfo.class, ThisRefTypeInfo.class})
+@Constraint(need = GenericSignature.class)
@Use(GenericSignatureRefiner.class)
public class TypeGenericSignatureSplitter implements RunnableSchedulable<JDefinedClassOrInterface> {
@@ -46,7 +46,7 @@ public class TypeGenericSignatureSplitter implements RunnableSchedulable<JDefine
return;
}
- OriginalTypeInfo marker = declaredType.getMarker(OriginalTypeInfo.class);
+ GenericSignature marker = declaredType.getMarker(GenericSignature.class);
if (marker != null) {
CharSequence newSignature = getSplittedSignature(marker.getGenericSignature());
if (newSignature != null) {