Revision: 1580 Author: jasonpmorrison Date: 2006-08-21 01:41:58 -0700 (Mon, 21 Aug 2006) ViewCVS: http://svn.sourceforge.net/rubyeclipse/?rev=1580&view=rev Log Message: ----------- * Added test: Method return type varies with argument type * Added test: Factory method Modified Paths: -------------- branches/type_inferrence/trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/ti/DataFlowTypeInferrerTest.java Modified: branches/type_inferrence/trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/ti/DataFlowTypeInferrerTest.java =================================================================== --- branches/type_inferrence/trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/ti/DataFlowTypeInferrerTest.java 2006-08-21 08:41:14 UTC (rev 1579) +++ branches/type_inferrence/trunk/org.rubypeople.rdt.core.tests/src/org/rubypeople/rdt/internal/ti/DataFlowTypeInferrerTest.java 2006-08-21 08:41:58 UTC (rev 1580) @@ -143,6 +143,17 @@ String script = "class X;def foo;return 'bar';end;end;my_instance = X.new;my_var = my_instance.foo;my_var"; assertInfersTypeWithoutDoubt(inferrer.infer( script, 85), "String" ); } + + public void testMethodRetvalIsTypeCovariantWithArgument() throws Exception { + String script = "def foo(arg);return arg;end;my_var = foo(5);my_var"; + assertInfersTypeWithoutDoubt(inferrer.infer( script, 48), "Fixnum" ); + } + + public void testFactoryMethod() throws Exception { + String script = "class Klass;end;class KlassFactory;def build;return Klass.new;end;end;factory = KlassFactory.new;inst=factory.build;inst"; + assertInfersTypeWithoutDoubt(inferrer.infer( script, 119), "Klass" ); + } + //TODO: No dice yet on implicit retvals // public void testMethodImplicitRetval() throws Exception { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |