component x
import List.{...}
import Set.{...}
export Executable
run(args:String...) = do
singleton[\String\]("1")
end
end
Both List and Set have a singleton[\E\](x:E) method. The output is:
x.fss:7:4-24: No matches for instantiation of overloaded {
PENDING BELOW
* singleton[\E\](e:E):List[\E\]/home/kazzmir/fortress/trunk/Library/List.fss:490:0-494:5
* singleton[\E\](x:E):Set[\E\]/home/kazzmir/fortress/trunk/Library/Set.fss:75:0-78:3}:OverloadedFunction with (String)
If the type parameter is left off, a slightly different error message is produced:
component x
import List.{...}
import Set.{...}
export Executable
run(args:String...) = do
singleton("1")
end
end
Output:
/home/kazzmir/fortress/trunk/tmp/x.fss:7:4-18: Failed to find any matching overload, args = ("1"), overload = {
PENDING BELOW
* singleton[\E\](e:E):List[\E\]/home/kazzmir/fortress/trunk/Library/List.fss:490:0-494:5
* singleton[\E\](x:E):Set[\E\]/home/kazzmir/fortress/trunk/Library/Set.fss:75:0-78:3}:OverloadedFunction
The java stack trace for the first program above is:
at com.sun.fortress.exceptions.ProgramError.error(ProgramError.java:99)
at com.sun.fortress.interpreter.evaluator.values.OverloadedFunction$Factory.make(OverloadedFunction.java:942)
at com.sun.fortress.interpreter.evaluator.values.OverloadedFunction$Factory.make(OverloadedFunction.java:904)
at com.sun.fortress.useful.Memo1P.make(Memo1P.java:39)
at com.sun.fortress.interpreter.evaluator.values.OverloadedFunction.make(OverloadedFunction.java:951)
at com.sun.fortress.interpreter.evaluator.values.OverloadedFunction.typeApply(OverloadedFunction.java:989)
at com.sun.fortress.interpreter.evaluator.values.OverloadedFunction.typeApply(OverloadedFunction.java:974)
at com.sun.fortress.interpreter.evaluator.Evaluator.applyToActualStaticArgs(Evaluator.java:1709)
at com.sun.fortress.interpreter.evaluator.Evaluator.applyToStaticArgs(Evaluator.java:1700)
at com.sun.fortress.interpreter.evaluator.Evaluator.for_RewriteFnRef(Evaluator.java:1693)
at com.sun.fortress.interpreter.evaluator.Evaluator.for_RewriteFnRef(Evaluator.java:178)
at com.sun.fortress.nodes._RewriteFnRef.accept(_RewriteFnRef.java:142)
at com.sun.fortress.interpreter.evaluator.Evaluator.forTightJuxt(Evaluator.java:1423)
at com.sun.fortress.interpreter.evaluator.Evaluator.forTightJuxt(Evaluator.java:1367)
at com.sun.fortress.interpreter.evaluator.Evaluator.forTightJuxt(Evaluator.java:178)
at com.sun.fortress.nodes.TightJuxt.accept(TightJuxt.java:192)
at com.sun.fortress.interpreter.evaluator.Evaluator.evalExprList(Evaluator.java:472)
at com.sun.fortress.interpreter.evaluator.Evaluator.evalExprList(Evaluator.java:454)
at com.sun.fortress.interpreter.evaluator.Evaluator.forBlock(Evaluator.java:422)
at com.sun.fortress.interpreter.evaluator.Evaluator.forBlock(Evaluator.java:178)
at com.sun.fortress.nodes.Block.accept(Block.java:58)
at com.sun.fortress.interpreter.evaluator.Evaluator.forDo(Evaluator.java:382)
at com.sun.fortress.interpreter.evaluator.Evaluator.forDo(Evaluator.java:178)
at com.sun.fortress.nodes.Do.accept(Do.java:58)
at com.sun.fortress.interpreter.evaluator.Evaluator.eval(Evaluator.java:183)
at com.sun.fortress.interpreter.evaluator.values.Closure.applyInner(Closure.java:206)
at com.sun.fortress.interpreter.evaluator.values.Fcn.apply(Fcn.java:98)
at com.sun.fortress.interpreter.Driver.runProgramTask(Driver.java:1048)
at com.sun.fortress.interpreter.evaluator.tasks.EvaluatorTask.compute(EvaluatorTask.java:61)
at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:234)
at jsr166y.forkjoin.RecursiveAction.forkJoin(RecursiveAction.java:119)
at jsr166y.forkjoin.Submission.compute(Submission.java:97)
at jsr166y.forkjoin.Submission.exec(Submission.java:201)
at jsr166y.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:285)