From 4f03337a8c655b5a3e494ee27290bf2695910f5d Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Thu, 20 Apr 2006 16:33:42 +0000 Subject: [PATCH] Fixed SD2-773: Unable to design Boo form containing ListBox Fixed code-completion on closure parameters. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.0@1323 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Project/Src/CodeCompletion/VariableLookupVisitor.cs | 5 +++++ .../Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/VariableLookupVisitor.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/VariableLookupVisitor.cs index d28e082e50..a300b118d6 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/VariableLookupVisitor.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/VariableLookupVisitor.cs @@ -26,6 +26,11 @@ namespace Grunwald.BooBinding.CodeCompletion DeclarationFound(node.Declaration.Name, node.Declaration.Type, node.Initializer, node.LexicalInfo); } + public override void OnParameterDeclaration(ParameterDeclaration node) + { + DeclarationFound(node.Name, node.Type, null, node.LexicalInfo); + } + protected override void OnError(Node node, Exception error) { MessageService.ShowError(error, "VariableLookupVisitor: error processing " + node); diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs index ff2e68fde7..d70192e2a1 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/Designer/CodeDomVisitor.cs @@ -508,7 +508,9 @@ namespace Grunwald.BooBinding.Designer int count = Math.Min(m.Parameters.Count, cmie.Parameters.Count); for (int i = 0; i < count; i++) { CodeArrayCreateExpression cace = cmie.Parameters[i] as CodeArrayCreateExpression; - if (cace != null) { + if (cace != null && (bool)cace.UserData["unknownType"] + && m.Parameters[i].ReturnType.ArrayDimensions > 0) + { cace.CreateType = new CodeTypeReference(m.Parameters[i].ReturnType.FullyQualifiedName); } } @@ -561,6 +563,7 @@ namespace Grunwald.BooBinding.Designer initializers[i] = _expression; } _expression = new CodeArrayCreateExpression(createType.FullyQualifiedName, initializers); + _expression.UserData["unknownType"] = node.Type != null; } } }