Browse Source

Fixed namespace handling in Boo ConvertVisitor.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/3.0@4015 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 16 years ago
parent
commit
31aa1cec0e
  1. 27
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs

27
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs

@ -386,8 +386,23 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -386,8 +386,23 @@ namespace Grunwald.BooBinding.CodeCompletion
return base.EnterEnumDefinition(node);
}
// cannot override OnNamespaceDeclaration - it's visited too late (after the type definitions)
void HandleNamespaceDeclaration(AST.NamespaceDeclaration node)
{
if (node == null)
return;
string[] namespaceName = node.Name.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string namePart in namespaceName) {
_cu.UsingScope = new DefaultUsingScope {
NamespaceName = PrependCurrentNamespace(namePart),
Parent = _cu.UsingScope
};
}
}
public override bool EnterModule(AST.Module node)
{
HandleNamespaceDeclaration(node.Namespace);
if (!_firstModule && node.Members.Count > 0) {
EnterTypeDefinition(node, ClassType.Module);
}
@ -538,18 +553,6 @@ namespace Grunwald.BooBinding.CodeCompletion @@ -538,18 +553,6 @@ namespace Grunwald.BooBinding.CodeCompletion
else
return _cu.UsingScope.NamespaceName + "." + name;
}
public override void OnNamespaceDeclaration(Boo.Lang.Compiler.Ast.NamespaceDeclaration node)
{
string[] namespaceName = node.Name.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries);
foreach (string namePart in namespaceName) {
_cu.UsingScope = new DefaultUsingScope {
NamespaceName = PrependCurrentNamespace(namePart),
Parent = _cu.UsingScope
};
}
base.OnNamespaceDeclaration(node);
}
}
}

Loading…
Cancel
Save