summaryrefslogtreecommitdiff
path: root/src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
diff options
context:
space:
mode:
authorGravatar jeff2014-09-24 01:00:54 -0400
committerGravatar jeff2014-09-24 01:00:54 -0400
commit8776a8ba38123c822530e5f659c626c8db616217 (patch)
tree8138a4e4447552e598bb99cfd8fb23a5f27f840b /src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java
parenttrying to figure out why some mappings to correspond to anything in the jar f... (diff)
downloadenigma-fork-8776a8ba38123c822530e5f659c626c8db616217.tar.gz
enigma-fork-8776a8ba38123c822530e5f659c626c8db616217.tar.xz
enigma-fork-8776a8ba38123c822530e5f659c626c8db616217.zip
HOW DO I WRITE SO MANY BUGS?!?
Diffstat (limited to 'src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java')
-rw-r--r--src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java18
1 files changed, 16 insertions, 2 deletions
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
116 MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE ); 116 MemberReference ref = node.getUserData( Keys.MEMBER_REFERENCE );
117 if( ref != null ) 117 if( ref != null )
118 { 118 {
119 // make sure this is actually a field
120 if( ref.getSignature().indexOf( '(' ) >= 0 )
121 {
122 throw new Error( "Expected a field here! got " + ref );
123 }
124
119 ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() ); 125 ClassEntry classEntry = new ClassEntry( ref.getDeclaringType().getInternalName() );
120 FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() ); 126 FieldEntry fieldEntry = new FieldEntry( classEntry, ref.getName() );
121 index.addReference( 127 index.addReference(
@@ -149,8 +155,16 @@ public class SourceIndexBehaviorVisitor extends SourceIndexVisitor
149 ParameterDefinition def = node.getUserData( Keys.PARAMETER_DEFINITION ); 155 ParameterDefinition def = node.getUserData( Keys.PARAMETER_DEFINITION );
150 ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() ); 156 ClassEntry classEntry = new ClassEntry( def.getDeclaringType().getInternalName() );
151 MethodDefinition methodDef = (MethodDefinition)def.getMethod(); 157 MethodDefinition methodDef = (MethodDefinition)def.getMethod();
152 MethodEntry methodEntry = new MethodEntry( classEntry, methodDef.getName(), methodDef.getSignature() ); 158 BehaviorEntry behaviorEntry;
153 ArgumentEntry argumentEntry = new ArgumentEntry( methodEntry, def.getPosition(), def.getName() ); 159 if( methodDef.isConstructor() )
160 {
161 behaviorEntry = new ConstructorEntry( classEntry, methodDef.getSignature() );
162 }
163 else
164 {
165 behaviorEntry = new MethodEntry( classEntry, methodDef.getName(), methodDef.getSignature() );
166 }
167 ArgumentEntry argumentEntry = new ArgumentEntry( behaviorEntry, def.getPosition(), def.getName() );
154 index.addDeclaration( node.getNameToken(), argumentEntry ); 168 index.addDeclaration( node.getNameToken(), argumentEntry );
155 169
156 return recurse( node, index ); 170 return recurse( node, index );