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")); }
public static void CheckSymbols(Symbol a, Symbol b) { var checker = new RetargetingSymbolChecker(); checker.CheckSymbols(a, b, true); }