|
From: <caw...@us...> - 2007-02-19 20:44:52
|
Revision: 1975
http://svn.sourceforge.net/rubyeclipse/?rev=1975&view=rev
Author: cawilliams
Date: 2007-02-19 12:44:51 -0800 (Mon, 19 Feb 2007)
Log Message:
-----------
fix task amrker so it will show up, remove unused coe, add code to infer a CallNode's receiver if there's no guesses.
Modified Paths:
--------------
trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/ti/DefaultTypeInferrer.java
Modified: trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/ti/DefaultTypeInferrer.java
===================================================================
--- trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/ti/DefaultTypeInferrer.java 2007-02-19 20:44:10 UTC (rev 1974)
+++ trunk/org.rubypeople.rdt.core/src/org/rubypeople/rdt/internal/ti/DefaultTypeInferrer.java 2007-02-19 20:44:51 UTC (rev 1975)
@@ -43,10 +43,6 @@
if (node == null) {
return null;
}
-
- // System.out.println("offset: " + offset + ": " +
- // node.getClass().getName());
-
return infer(node);
}
@@ -62,7 +58,7 @@
tryConstantNode(node, guesses);
tryAsgnNode(node, guesses);
- // todo: refactor these 3 by common features into 1 (or 1+3) method(s)
+ // TODO refactor these 3 by common features into 1 (or 1+3) method(s)
tryLocalVarNode(node, guesses);
tryInstVarNode(node, guesses);
tryGlobalVarNode(node, guesses);
@@ -71,6 +67,12 @@
if (node instanceof ConstNode) { // if this is a constant, it may be the type name!
guesses.add(new BasicTypeGuess(((ConstNode)node).getName(), 100));
}
+ if (guesses.isEmpty()) { // if we have no guesses..
+ if (node instanceof CallNode) { // and it's a method call, try inferring receiver type
+ CallNode call = (CallNode) node;
+ return infer(call.getReceiverNode());
+ }
+ }
return guesses;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|