Сам код
// REFERENCE: System.Core
using System;
using System.Linq;
module Test
{
class Class1
{
public val : int;
public this(i : int) { val = i }
public override ToString() : string { $"$val" }
}
public delegate F[T, R](t : T) : R;
public UseDelegate[TSource, TResult](o : F[TSource, TResult], val : TSource) : object
{
o(val)
}
public UseFunction[TSource, TResult](o : TSource -> TResult, val : TSource) : object
{
o(val)
}
Main() : void
{
def lst = [1, 2, 3];
def lst = lst.Select(Class1);
def res = lst.Sum(_.val);
Console.WriteLine(res);
Console.WriteLine(UseDelegate(Class1, 1));
Console.WriteLine(UseFunction(Class1, 2));
}
}
/*
BEGIN-OUTPUT
6
1
2
END-OUTPUT
*/
А вот выхлоп сборки:
C:\Projects\External\nemerle\ncc\testsuite\positive\Issue-git-0327.n: ..................................failed
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, System.Nullable[float]]) : System.Nullable[float]
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, System.Nullable[decimal]]) : System.Nullable[decimal]
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, int]) : int
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : bool) : void
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : char) : void
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(buffer : array[char]) : void
Unexpected Nemerle compiler's message :
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : string) : void
Nemerle compile test failed
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:25:32:28: error: typing fails on accessing member val in the ? type
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: error: typing fails on ambiguity between overloads:
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, System.Nullable[float]]) : System.Nullable[float]
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, System.Nullable[decimal]]) : System.Nullable[decimal]
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:32:15:32:22: hint: Posible overload: method System.Linq.Enumerable.Sum(source : System.Collections.Generic.IEnumerable[TSource], selector : System.Func[TSource, int]) : int
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: error: typing fails on ambiguity between overloads:
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : bool) : void
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : char) : void
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(buffer : array[char]) : void
C:/Projects/External/nemerle/ncc/testsuite/positive/Issue-git-0327.n:33:5:33:22: hint: Posible overload: method System.Console.WriteLine(value : string) : void