Esempio n. 1
0
        public void RetargetProperties()
        {
            var source =
                @"interface I
{
    object this[string x, object y] { get; set; }
}
struct S
{
    I P { get { return null; } }
}
class C
{
    internal I Q { get; private set; }
    object this[I index]
    {
        get { return 0; }
        set { }
    }
}";
            var compilation = CreateCompilationWithMscorlib(source);

            var sourceModule    = compilation.SourceModule;
            var sourceAssembly  = (SourceAssemblySymbol)sourceModule.ContainingAssembly;
            var sourceNamespace = sourceModule.GlobalNamespace;

            var retargetingAssembly = new RetargetingAssemblySymbol(sourceAssembly, isLinked: false);

            retargetingAssembly.SetCorLibrary(sourceAssembly.CorLibrary);
            var retargetingModule    = retargetingAssembly.Modules[0];
            var retargetingNamespace = retargetingModule.GlobalNamespace;

            RetargetingSymbolChecker.CheckSymbols(sourceNamespace.GetMember <NamedTypeSymbol>("I"), retargetingNamespace.GetMember <NamedTypeSymbol>("I"));
            RetargetingSymbolChecker.CheckSymbols(sourceNamespace.GetMember <NamedTypeSymbol>("S"), retargetingNamespace.GetMember <NamedTypeSymbol>("S"));
            RetargetingSymbolChecker.CheckSymbols(sourceNamespace.GetMember <NamedTypeSymbol>("C"), retargetingNamespace.GetMember <NamedTypeSymbol>("C"));
        }
Esempio n. 2
0
        public static void CheckSymbols(Symbol a, Symbol b)
        {
            var checker = new RetargetingSymbolChecker();

            checker.CheckSymbols(a, b, true);
        }