Bug 15089 - System.Linq.Expressions.ExpressionVisitor members have wrong signatures
Summary: System.Linq.Expressions.ExpressionVisitor members have wrong signatures
Status: RESOLVED DUPLICATE of bug 15008
Alias: None
Product: iOS
Classification: Xamarin
Component: Xamarin.iOS.dll ()
Version: 7.0.0.x
Hardware: PC Mac OS
: --- normal
Target Milestone: Untriaged
Assignee: Marek Safar
URL:
Depends on:
Blocks:
 
Reported: 2013-09-30 22:32 UTC by Jonathan Pryor
Modified: 2014-04-08 10:14 UTC (History)
4 users (show)

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

Notice (2018-05-24): bugzilla.xamarin.com is now in read-only mode.

Please join us on Visual Studio Developer Community and in the Xamarin and Mono organizations on GitHub to continue tracking issues. Bugzilla will remain available for reference in read-only mode. We will continue to work on open Bugzilla bugs, copy them to the new locations as needed for follow-up, and add the new items under Related Links.

Our sincere thanks to everyone who has contributed on this bug tracker over the years. Thanks also for your understanding as we make these adjustments and improvements for the future.


Please create a new report on Developer Community or GitHub with your current version information, steps to reproduce, and relevant error messages or log files if you are hitting an issue that looks similar to this resolved bug and you do not yet see a matching new report.

Related Links:
Status:
RESOLVED DUPLICATE of bug 15008

Description Jonathan Pryor 2013-09-30 22:32:48 UTC
Context: http://lists.ximian.com/pipermail/monodroid/2013-October/013974.html

Xamarin.iOS' System.Linq.Expressions.ExpressionVisitor methods have the wrong signature. They should match .NET, but they do not.

For example, ExpressionVisitor.VisitMethodCall()

.NET: http://msdn.microsoft.com/en-us/library/system.linq.expressions.expressionvisitor.visitmethodcall.aspx

    protected internal virtual Expression VisitMethodCall(
        MethodCallExpression node
    )

Xamarin.iOS: https://github.com/mono/mono/blob/ac11abe1/mcs/class/System.Core/System.Linq.Expressions/ExpressionVisitor.cs#L183

    protected virtual void VisitMethodCall(
        MethodCallExpression node
    )

Xamarin.iOS' System.Core.dll should be API-compatible with .NET's System.Core.dll.
Comment 1 Lucian POPESCU 2013-10-09 05:45:36 UTC
Thank you for posting this issue, I was going to do it myself.
Anxious to get a response to this one.
Comment 2 Marek Safar 2013-10-09 06:58:08 UTC

*** This bug has been marked as a duplicate of bug 15008 ***
Comment 3 Chad Kimes 2014-04-07 16:58:11 UTC
This bug is not a duplicate of 15008 and is not resolved. The code in the master branch still shows all of these methods as returning 'void' rather than 'Expression':

https://github.com/mono/mono/blob/master/mcs/class/System.Core/System.Linq.Expressions/ExpressionVisitor.cs

It kind of defeats the point of having an ExpressionVisitor class if all of the methods return void, since everything in an Expression is read-only.
Comment 4 Marek Safar 2014-04-08 06:45:21 UTC
You need Xamarin.iOS version 7.2.1 or better to have updated ExpressionVisitor.
Comment 5 Jonathan Pryor 2014-04-08 10:04:57 UTC
@Chad: The contents of System.Core/System.Linq.Expressions/ExpressionVisitor.cs are not used on Xamarin.iOS 7.2.1+.

It is instead using:

https://github.com/mono/mono/blob/master/mcs/class/dlr/Runtime/Microsoft.Scripting.Core/Ast/ExpressionVisitor.cs

via:

https://github.com/mono/mono/blob/master/mcs/class/System.Core/monotouch_System.Core.dll.sources#L2
https://github.com/mono/mono/blob/master/mcs/class/System.Core/interpreter_System.Core.dll.sources#L42

@Marek: Should we remove the mcs/class/System.Core/System.Linq.Expressions/ExpressionVisitor.cs & related files? Or is something still using them?
Comment 6 Marek Safar 2014-04-08 10:14:33 UTC
It's used by 2.0/3.5 profile System.Core