Rosetta
Rosetta copied to clipboard
Type ambiguity with System types
When translating, it is possible that the source code defines types with the same name as types in MsCoreLib.dll
and includes both namespaces, thus generating a clash.
The source code might define an interface:
namespace MyNamespace {
namespace MySubnamespace {
public interface INotifyCompletion { }
}
}
However we have that interface also in MsCoreLibe
: System.Runtime.CompilerServices.INotifyCompletion
.
Especially when using syntax transformation (which rearranges using
directives), we might end up in this situation:
using System.Runtime.CompilerServices;
using MyNamespace.MySubnamespace;
public class MyClass {
protected INotifyCompletion notifier; // Name clash
}
When processing notifier
, the semantic model detects an ambiguity.
To verify, with the new system as per #41, this should not happen