class Foo {
new make() {}
static new staticMake() { Foo() }
}
...
Foo#.method("make").returns -> Void#
Foo#.method("make").func.returns -> Void#
Foo#.method("staticMake").returns -> Foo#
Foo#.method("staticMake").func.returns -> Foo#
It seems they should all return Foo#, not Void#
Context: I'm creating an List through method reflection, instantiating the type based off the return type of the method. This returning of Void# mucks it up.
SlimerDudeMon 19 Oct 2015
Could you inspect the type with Slot.isCtor() and return the Slot's parent if true?
brianMon 19 Oct 2015
Instance constructors are unique - they look like static methods with a return value on the outside, but on the inside they are Void (you don't return anything). So its really a special case, and the semantics are defined now - wouldn't want to change that. But as SlimerDude mentioned you can add isCtor check.
Jeremy Criquet Mon 19 Oct 2015
It seems they should all return
Foo#
, notVoid#
Context: I'm creating an
List
through method reflection, instantiating the type based off the return type of the method. This returning ofVoid#
mucks it up.SlimerDude Mon 19 Oct 2015
Could you inspect the type with
Slot.isCtor()
and return the Slot's parent if true?brian Mon 19 Oct 2015
Instance constructors are unique - they look like static methods with a return value on the outside, but on the inside they are Void (you don't return anything). So its really a special case, and the semantics are defined now - wouldn't want to change that. But as SlimerDude mentioned you can add isCtor check.