/* Test various permutations of the => operator */ class converter { var v; public proc create(x) { v = x; } operator => (rhs) { var str = "cvt " ## (rhs => String); return new converter(str); } operator \=> (lhs) { var str = "cvt " ## (lhs => String); return new converter(str); } operator () (a) { return a => self; } public proc print() { say("v = ", v, "\n"); } } proc main() { var a = 1.5; var b; b = Int(a); say("b = ", b, "\n"); a = converter(5); a.print(); a = Float(a); a.print(); a = converter(10); a.print(); a = a(3); a.print(); a = {1.2, 2.3, 3.4, 4.5}; a = Int(a); say("a = ", a[0], " ", a[1], " ", a[2], " ", a[3], "\n"); a = converter(15); a.print(); a = a => {1,2,3}; // This is a case that call syntax can't handle a.print(); }