Browse Source

fixed NullReferenceException when working with VB files outside of a VB project

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@6292 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 15 years ago
parent
commit
8ee9c5e697
  1. 3
      src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs
  2. 4
      src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs
  3. 2
      src/Libraries/NRefactory/Project/Src/Visitors/ToVBNetConvertVisitor.cs
  4. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CodeSnippetConverter.cs
  5. 5
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs
  6. 2
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

3
src/AddIns/BackendBindings/CSharpBinding/Project/Src/Parser/Parser.cs

@ -5,7 +5,6 @@ @@ -5,7 +5,6 @@
// <version>$Revision$</version>
// </file>
using ICSharpCode.SharpDevelop.Editor;
using System;
using System.IO;
using ICSharpCode.SharpDevelop;
@ -94,7 +93,7 @@ namespace CSharpBinding.Parser @@ -94,7 +93,7 @@ namespace CSharpBinding.Parser
p.ParseMethodBodies = false;
p.Parse();
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(projectContent);
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(projectContent, ICSharpCode.NRefactory.SupportedLanguage.CSharp);
visitor.Specials = p.Lexer.SpecialTracker.CurrentSpecials;
visitor.VisitCompilationUnit(p.CompilationUnit, null);
visitor.Cu.FileName = fileName;

4
src/AddIns/BackendBindings/VBNetBinding/Project/Src/Parser/Parser.cs

@ -9,8 +9,8 @@ using System; @@ -9,8 +9,8 @@ using System;
using System.IO;
using ICSharpCode.SharpDevelop;
using ICSharpCode.SharpDevelop.Dom;
using ICSharpCode.SharpDevelop.Dom.VBNet;
using ICSharpCode.SharpDevelop.Dom.NRefactoryResolver;
using ICSharpCode.SharpDevelop.Dom.VBNet;
using ICSharpCode.SharpDevelop.Project;
namespace ICSharpCode.VBNetBinding.Parser
@ -101,7 +101,7 @@ namespace ICSharpCode.VBNetBinding.Parser @@ -101,7 +101,7 @@ namespace ICSharpCode.VBNetBinding.Parser
p.ParseMethodBodies = false;
p.Parse();
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(projectContent);
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(projectContent, ICSharpCode.NRefactory.SupportedLanguage.VBNet);
if (projectContent.Project != null) {
visitor.VBRootNamespace = ((IProject)projectContent.Project).RootNamespace;
}

2
src/Libraries/NRefactory/Project/Src/Visitors/ToVBNetConvertVisitor.cs

@ -395,7 +395,7 @@ namespace ICSharpCode.NRefactory.Visitors @@ -395,7 +395,7 @@ namespace ICSharpCode.NRefactory.Visitors
public override object VisitLocalVariableDeclaration(LocalVariableDeclaration localVariableDeclaration, object data)
{
if (localVariableDeclaration.TypeReference.Type == "var")
localVariableDeclaration.TypeReference = TypeReference.Null;;
localVariableDeclaration.TypeReference = TypeReference.Null;
return base.VisitLocalVariableDeclaration(localVariableDeclaration, data);
}
}

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/CodeSnippetConverter.cs

@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -88,7 +88,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
// convert NRefactory CU in DOM CU
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(project);
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(project, sourceLanguage);
visitor.VisitCompilationUnit(compilationUnit, null);
visitor.Cu.FileName = sourceLanguage == SupportedLanguage.CSharp ? "a.cs" : "a.vb";

5
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryASTConvertVisitor.cs

@ -11,6 +11,7 @@ using System.Collections.Generic; @@ -11,6 +11,7 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Text;
using System.Linq;
using ICSharpCode.NRefactory;
using ICSharpCode.NRefactory.Visitors;
using ICSharpCode.SharpDevelop.Dom.VBNet;
using AST = ICSharpCode.NRefactory.Ast;
@ -31,9 +32,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -31,9 +32,9 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
}
}
public NRefactoryASTConvertVisitor(IProjectContent projectContent)
public NRefactoryASTConvertVisitor(IProjectContent projectContent, SupportedLanguage language)
{
if (projectContent.Language == LanguageProperties.VBNet)
if (language == SupportedLanguage.VBNet)
cu = new VBNetCompilationUnit(projectContent);
else
cu = new DefaultCompilationUnit(projectContent);

2
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -163,7 +163,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -163,7 +163,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
this.ProjectContent = cu.ProjectContent;
if (language == SupportedLanguage.VBNet) {
IVBNetOptionProvider provider = cu as IVBNetOptionProvider;
IVBNetOptionProvider provider = (IVBNetOptionProvider)cu;
inferAllowed = provider.OptionInfer ?? false;
}

Loading…
Cancel
Save