diff options
| author | 2014-09-24 01:00:54 -0400 | |
|---|---|---|
| committer | 2014-09-24 01:00:54 -0400 | |
| commit | 8776a8ba38123c822530e5f659c626c8db616217 (patch) | |
| tree | 8138a4e4447552e598bb99cfd8fb23a5f27f840b /src/cuchaz/enigma/analysis/SourceIndexBehaviorVisitor.java | |
| parent | trying to figure out why some mappings to correspond to anything in the jar f... (diff) | |
| download | enigma-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.java | 18 |
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 ); |