Bug 42057 - error CS0121: The call is ambiguous
Summary: error CS0121: The call is ambiguous
Alias: None
Product: Compilers
Classification: Mono
Component: C# (show other bugs)
Version: unspecified
Hardware: PC Linux
: --- normal
Target Milestone: ---
Assignee: Marek Safar
Depends on:
Reported: 2016-06-22 02:35 UTC by Łukasz Domeradzki
Modified: 2016-07-04 13:12 UTC (History)
1 user (show)

See Also:
Is this bug a regression?: ---
Last known good build:


Description Łukasz Domeradzki 2016-06-22 02:35:55 UTC
error CS0121: The call is ambiguous between the following methods or properties: `System.Linq.Enumerable.Sum<System.Tuple<System.DateTime,byte>>(this System.Collections.Generic.IEnumerable<System.Tuple<System.DateTime,byte>>, System.Func<System.Tuple<System.DateTime,byte>,int>)' and `System.Linq.Enumerable.Sum<System.Tuple<System.DateTime,byte>>(this System.Collections.Generic.IEnumerable<System.Tuple<System.DateTime,byte>>, System.Func<System.Tuple<System.DateTime,byte>,decimal?>)'

The following compiles perfectly in Visual Studio (2015):

HashSet<Tuple<DateTime, byte>> giveaways = MySQL.GetCreatedGiveawaysDatesValues(1234); // Or just new...
Tuple<DateTime, byte> targetGiveaway = MySQL.GetTargetGiveaway(1234); // Or just new...

ushort calculatedValue = (ushort) giveaways.Where(giveaway => targetGiveaway.Item1.Subtract(giveaway.Item1).TotalDays < 60.8737).Sum(giveaway => giveaway.Item2);

Of course, the issue is in the last line, I included types for reproducable case. It compiles fine under VS. Latest Mono master from GitHub.
Comment 1 Marek Safar 2016-07-04 13:12:55 UTC
Fixed in master and Mono 4.5.1

Note You need to log in before you can comment on or make changes to this bug.