From 428574f8a44bdd21bbe408dde6d1df2b3db1efae Mon Sep 17 00:00:00 2001 From: Thog Date: Tue, 6 Sep 2016 12:28:05 +0200 Subject: Generify ProcyonEntryFactory (Fix #18) --- .../cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | 14 +++++--------- .../java/cuchaz/enigma/mapping/ProcyonEntryFactory.java | 7 ++++--- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index 2c84cd69..9a98b918 100644 --- a/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/main/java/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java @@ -96,15 +96,11 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor { @Override public Void visitParameterDeclaration(ParameterDeclaration node, SourceIndex index) { ParameterDefinition def = node.getUserData(Keys.PARAMETER_DEFINITION); - if (def.getMethod() instanceof MemberReference) { - BehaviorEntry behaviorEntry; - if (def.getMethod() instanceof MethodDefinition) - behaviorEntry = ProcyonEntryFactory.getBehaviorEntry((MethodDefinition) def.getMethod()); - else - behaviorEntry = ProcyonEntryFactory.getMethodEntry((MemberReference) def.getMethod()); // Generic definition - ArgumentEntry argumentEntry = new ArgumentEntry(behaviorEntry, argumentPosition++, node.getName()); - index.addDeclaration(node.getNameToken(), argumentEntry); - } + if (def.getMethod() instanceof MemberReference) + if (def.getMethod() instanceof MethodReference) + index.addDeclaration(node.getNameToken(), + new ArgumentEntry(ProcyonEntryFactory.getBehaviorEntry((MethodReference) def.getMethod()), + argumentPosition++, node.getName())); return recurse(node, index); } diff --git a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java index 949d88f4..08dc8b18 100644 --- a/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java +++ b/src/main/java/cuchaz/enigma/mapping/ProcyonEntryFactory.java @@ -13,10 +13,11 @@ package cuchaz.enigma.mapping; import com.strobel.assembler.metadata.FieldDefinition; import com.strobel.assembler.metadata.MemberReference; import com.strobel.assembler.metadata.MethodDefinition; +import com.strobel.assembler.metadata.MethodReference; public class ProcyonEntryFactory { - public static FieldEntry getFieldEntry(FieldDefinition def) { + public static FieldEntry getFieldEntry(MemberReference def) { return new FieldEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Type(def.getErasedSignature())); } @@ -24,7 +25,7 @@ public class ProcyonEntryFactory { return new MethodEntry(new ClassEntry(def.getDeclaringType().getInternalName()), def.getName(), new Signature(def.getErasedSignature())); } - public static ConstructorEntry getConstructorEntry(MethodDefinition def) { + public static ConstructorEntry getConstructorEntry(MethodReference def) { if (def.isTypeInitializer()) { return new ConstructorEntry(new ClassEntry(def.getDeclaringType().getInternalName())); } else { @@ -32,7 +33,7 @@ public class ProcyonEntryFactory { } } - public static BehaviorEntry getBehaviorEntry(MethodDefinition def) { + public static BehaviorEntry getBehaviorEntry(MethodReference def) { if (def.isConstructor() || def.isTypeInitializer()) { return getConstructorEntry(def); } else { -- cgit v1.2.3