[E-Lang] Coming Attractions: Java Overload Resolution

Dean Tribble tribble@e-dean.com
Sat, 24 Mar 2001 10:27:27 -0800


>I figured out the "E call" stuff eventually, but it was hard because it
>is quite picky about the formatting of the string that specifies which
>initializer you want.  The right answer is:
>
>     E call( integer maker, "new(int, Random)", [bits, rng] )
>
>but you have to have exactly zero spaces after "new" and the parens,
>and exactly one space after the comma, for it to work.

In Elmer,

? integer maker protocols

return s a bunch of gobbledygook that includes:

#        }`, "new(int, Random)/2" => e`to new p0, p1 {

which presumably is the one you want.

? help(integer maker)

however, only returns

# value: "an org.erights.e.elib.prim.EStaticWrapper\n\
#        ONE/0
#        ZERO/0
#        asType/0
#        new/1
#        new/2
#        new/3

which tells you nothing about the argument.  Let me suggest enhancing help 
to show arguments, and in the case of overloadings that will not be 
automatically selected, something suggestive of the precise string that 
must be provided to "call".