Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix evaluation order of assignments to fields. #4

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

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