From ddaa0f6bdeeec392764ff36d822d39baf154d8c6 Mon Sep 17 00:00:00 2001 From: jeff Date: Fri, 20 Feb 2015 18:19:57 -0500 Subject: better error messages for procyon type resolution --- src/cuchaz/enigma/Deobfuscator.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/cuchaz/enigma/Deobfuscator.java b/src/cuchaz/enigma/Deobfuscator.java index 9cd6e41f..c1954fc7 100644 --- a/src/cuchaz/enigma/Deobfuscator.java +++ b/src/cuchaz/enigma/Deobfuscator.java @@ -31,6 +31,7 @@ import com.google.common.collect.Maps; import com.google.common.collect.Sets; import com.strobel.assembler.metadata.MetadataSystem; import com.strobel.assembler.metadata.TypeDefinition; +import com.strobel.assembler.metadata.TypeReference; import com.strobel.decompiler.DecompilerContext; import com.strobel.decompiler.DecompilerSettings; import com.strobel.decompiler.PlainTextOutput; @@ -225,9 +226,15 @@ public class Deobfuscator { getTranslator(TranslationDirection.Obfuscating), getTranslator(TranslationDirection.Deobfuscating) )); + + // see if procyon can find the type + TypeReference type = new MetadataSystem(m_settings.getTypeLoader()).lookupType(lookupClassName); + if (type == null) { + throw new Error("Unable to find type: " + lookupClassName + " (obf name: " + obfClassName + ")"); + } + TypeDefinition resolvedType = type.resolve(); // decompile it! - TypeDefinition resolvedType = new MetadataSystem(m_settings.getTypeLoader()).lookupType(lookupClassName).resolve(); DecompilerContext context = new DecompilerContext(); context.setCurrentType(resolvedType); context.setSettings(m_settings); -- cgit v1.2.3