Skip to content

Fix evaluation order of assignments to fields.#4

Open
mattmccutchen-microsoft wants to merge 1 commit intoboogie-org:masterfrom
cs0317:field-assmt-eval-order
Open

Fix evaluation order of assignments to fields.#4
mattmccutchen-microsoft wants to merge 1 commit intoboogie-org:masterfrom
cs0317:field-assmt-eval-order

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