class test
{
Void test(Obj? obj) {
if (obj is List) {
List list := obj
list.each |item| {}
}
}
}
generates this stack trace:
sys::UnknownTypeErr: sys::V
at fan.sys.UnknownTypeErr.<init>(UnknownTypeErr.java:39)
at fan.sys.UnknownTypeErr.make(UnknownTypeErr.java:25)
at fan.sys.UnknownTypeErr.make(UnknownTypeErr.java:22)
at fan.sys.Pod.findType(Pod.java:385)
at fan.sys.ClassType.map(ClassType.java:457)
at fan.sys.ClassType.doReflect(ClassType.java:336)
at fan.sys.ClassType.reflect(ClassType.java:293)
at fan.sys.ClassType.slot(ClassType.java:104)
at fan.sys.Type.method(Type.java:226)
at fanx.tools.Fan.executeFile(Fan.java:79)
at fanx.tools.Fan.execute(Fan.java:35)
at fanx.tools.Fan.run(Fan.java:230)
at fanx.tools.Fan.main(Fan.java:268)
If I change it to:
list.each |Obj? item| {}
it's okay. Also changing List list to Obj?[] list gets rid of the error.
I'm thinking either reflection ought to assume Obj?, or that be a compile error.
tompalmerWed 22 Jul 2009
I think I like Obj? better than making it an error.
brianWed 22 Jul 2009
Promoted to ticket #676 and assigned to brian
brianTue 8 Sep 2009
Ticket resolved in 1.0.46
Fix closure type inference against generic parameters like V to infer as Obj?
KevinKelley Wed 22 Jul 2009
This testcase:
generates this stack trace:
If I change it to:
it's okay. Also changing
List list
toObj?[] list
gets rid of the error.I'm thinking either reflection ought to assume Obj?, or that be a compile error.
tompalmer Wed 22 Jul 2009
I think I like
Obj?
better than making it an error.brian Wed 22 Jul 2009
Promoted to ticket #676 and assigned to brian
brian Tue 8 Sep 2009
Ticket resolved in 1.0.46
Fix closure type inference against generic parameters like V to infer as Obj?
changeset