|
|
|
One way to temporarily fix this, in src/boo.lang.compiler/typesystem/nameresolutionservice.cs in the ResolveSimpleTypeReference method.
At the line that says: Add this BEFORE that line: if (null != info && EntityType.Ambiguous == info.EntityType) { IEntity[] entities = ((Ambiguous)info).Entities; info = entities[entities.Length-1]; node.Name = info.FullName; }I also added an overload of the ResolveQualifiedName method that takes an entitytype, but that is not called in this particular test. Also, I'm just guessing, but if you want to create and use classes with the same names and namespaces as those in boo.lang.compiler or other automatically referenced assemblies, you could have outside assemblies inserted at the beginning of the list instead of adding them to the end.
Change this in the sources for booc, booi, and the initializenameresolutionservices step: Parameters.References.Add(asm); to Parameters.References.Insert(0, asm) or whatever Correctly outputs "Ambiguous reference" since 0.8.1
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
// File: Alpha.boo
namespace Alpha
class Foo:
pass
interface INeeded:
pass
// File: BravoAlternate.boo
namespace Bravo:
class Foo:
pass
// File: Bravo.boo
namespace Bravo
import Alpha
class Bar(Foo, INeeded):
pass