7

DateTimeOffset?パラメータの 1 つとしてa を受け取るインターフェイスをモックしようとしていました。突然、Visual Studio が「内部コンパイラ エラー」を報告し始め、それが「動作を停止した」と報告しました。何度も試行錯誤した後、ファイルを 1 つずつ削除してから、1 行ずつコードを書き始めました。これは、このエラーを再現する以下のコードに縮小されます。

public class testClass
{
    public interface ITest
    {
        void Test(DateTimeOffset? date);
    }

    public void test2()
    {
        var mock = new Mock<ITest>();
        mock.Setup(x => x.Test(new DateTime(2012, 1, 1)));
    }
}

問題は次の行のようです:

mock.Setup(x => x.Test(new DateTime(2012, 1, 1)));

コメントすると、コンパイラは正常に動作します。new DateTime()また、問題は、 に収まる を設定していることですDateTimeOffset

Moqこれは、またはのバグVS2012ですか? 以前にこのエラーが発生したことはありますか?

アップデート

次のコード サンプルでも、通常の Visual Studio 2012 コンパイラと Roslyn CTP September 2012 の両方でコンパイル エラーが発生します。

using System;
using System.Linq.Expressions;

public interface ITest
{
    void Test(DateTimeOffset? date);
}

public class TestClass
{
    Expression<Action<ITest>> t = x => x.Test(new DateTime(2012, 1, 1));
}

エラー:

1>CSC : エラー CS0583: 内部コンパイラ エラー (アドレス 00D77AFB の 0xc0000005): 原因はおそらく 'BIND' です。

このコードは Moq とは関係ありません。

4

2 に答える 2