From 8776a8ba38123c822530e5f659c626c8db616217 Mon Sep 17 00:00:00 2001 From: jeff Date: Wed, 24 Sep 2014 01:00:54 -0400 Subject: HOW DO I WRITE SO MANY BUGS?!? --- .../enigma/analysis/SourceIndexBehaviorVisitor.java | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java') diff --git a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java index 6238b1e..f307c11 100644 --- a/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java +++ b/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java @@ -116,6 +116,12 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE ); if( ref != null ) { + // make sure this is actually a field + if( ref.getSignature().indexOf( '(' ) >= 0 ) + { + throw new Error( "Expected a field here! got " + ref ); + } + ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); index.addReference( @@ -149,8 +155,16 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor ParameterDefinition def = node.getUserData( Keys.PARAMETER_DEFINITION ); ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() ); MethodDefinition methodDef = (MethodDefinition)def.getMethod(); - MethodEntry methodEntry = new MethodEntry( classEntry, methodDef.getName(), methodDef.getSignature() ); - ArgumentEntry argumentEntry = new ArgumentEntry( methodEntry, def.getPosition(), def.getName() ); + BehaviorEntry behaviorEntry; + if( methodDef.isConstructor() ) + { + behaviorEntry = new ConstructorEntry( classEntry, methodDef.getSignature() ); + } + else + { + behaviorEntry = new MethodEntry( classEntry, methodDef.getName(), methodDef.getSignature() ); + } + ArgumentEntry argumentEntry = new ArgumentEntry( behaviorEntry, def.getPosition(), def.getName() ); index.addDeclaration( node.getNameToken(), argumentEntry ); return recurse( node, index ); -- cgit v1.2.3