Skip to content

Conversation

@mattmccutchen-microsoft
Copy link
Collaborator

Example program that demonstrates the incorrect translation by BCT:

using System;
using System.Diagnostics.Contracts;

public class Program
{
    class Cell
    {
        public int data;
    }
    static int last = 0;
    static Cell LHS(Cell cell)
    {
        last = 1;
        return cell;
    }
    static int RHS()
    {
        last = 2;
        return 42;
    }
    public static void Main()
    {
        Cell c = new Cell();
        LHS(c).data = RHS();
        Console.WriteLine(last);
        Contract.Assert(last == 2);
    }
}

The instance should be evaluated before the right side.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant