Browse Source

Fixed NullReferenceException when typing an OptionStatement.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@725 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 20 years ago
parent
commit
50a9f45f25
  1. 2036
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs
  2. 8
      src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG
  3. 17
      src/Libraries/NRefactory/Test/Parser/GlobalScope/OptionDeclarationTests.cs
  4. 10
      src/Libraries/NRefactory/Test/Parser/ParseUtilVBNet.cs
  5. 2
      src/Main/Base/Project/Resources/CommonAboutDialog.xfrm
  6. 1
      src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs
  7. 1
      src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptions.cs

2036
src/Libraries/NRefactory/Project/Src/Parser/VBNet/Parser.cs

File diff suppressed because it is too large Load Diff

8
src/Libraries/NRefactory/Project/Src/Parser/VBNet/VBNET.ATG

@ -502,9 +502,11 @@ OptionStmt (. INode node = null; bool val = true; .) = @@ -502,9 +502,11 @@ OptionStmt (. INode node = null; bool val = true; .) =
)
EndOfStmt
(.
node.StartLocation = startPos;
node.EndLocation = t.Location;
compilationUnit.AddChild(node);
if (node != null) {
node.StartLocation = startPos;
node.EndLocation = t.Location;
compilationUnit.AddChild(node);
}
.)
.

17
src/Libraries/NRefactory/Test/Parser/GlobalScope/OptionDeclarationTests.cs

@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
// <file>
// <file>
// <copyright see="prj:///doc/copyright.txt">2002-2005 AlphaSierraPapa</copyright>
// <license see="prj:///doc/license.txt">GNU General Public License</license>
// <owner name="Mike Krüger" email="mike@icsharpcode.net"/>
@ -19,12 +19,6 @@ namespace ICSharpCode.NRefactory.Tests.AST @@ -19,12 +19,6 @@ namespace ICSharpCode.NRefactory.Tests.AST
[TestFixture]
public class OptionDeclarationTests
{
#region C#
// No C# representation
#endregion
#region VB.NET
[Test]
public void VBNetStrictOptionDeclarationTest()
{
@ -60,7 +54,14 @@ namespace ICSharpCode.NRefactory.Tests.AST @@ -60,7 +54,14 @@ namespace ICSharpCode.NRefactory.Tests.AST
Assert.AreEqual(OptionType.CompareText, opDec.OptionType);
Assert.IsTrue(opDec.OptionValue);
}
#endregion
[Test]
public void VBNetInvalidOptionDeclarationTest()
{
string program = "Option\n";
IParser parser = ParserFactory.CreateParser(SupportedLanguage.VBNet, new StringReader(program));
parser.Parse();
Assert.IsFalse(parser.Errors.ErrorOutput.Length == 0, "Expected errors, but operation completed successfully");
}
}
}

10
src/Libraries/NRefactory/Test/Parser/ParseUtilVBNet.cs

@ -19,10 +19,18 @@ namespace ICSharpCode.NRefactory.Tests.AST @@ -19,10 +19,18 @@ namespace ICSharpCode.NRefactory.Tests.AST
public class ParseUtilVBNet
{
public static T ParseGlobal<T>(string program) where T : INode
{
return ParseGlobal<T>(program, false);
}
public static T ParseGlobal<T>(string program, bool expectErrors) where T : INode
{
IParser parser = ParserFactory.CreateParser(SupportedLanguage.VBNet, new StringReader(program));
parser.Parse();
Assert.AreEqual("", parser.Errors.ErrorOutput);
if (expectErrors)
Assert.IsFalse(parser.Errors.ErrorOutput.Length == 0, "Expected errors, but operation completed successfully");
else
Assert.AreEqual("", parser.Errors.ErrorOutput);
Assert.IsTrue(parser.CompilationUnit.Children.Count > 0);
Type type = typeof(T);
Assert.IsTrue(type.IsAssignableFrom(parser.CompilationUnit.Children[0].GetType()), String.Format("Parsed expression was {0} instead of {1} ({2})", parser.CompilationUnit.Children[0].GetType(), type, parser.CompilationUnit.Children[0]));

2
src/Main/Base/Project/Resources/CommonAboutDialog.xfrm

@ -43,12 +43,14 @@ @@ -43,12 +43,14 @@
<Controls>
<ICSharpCode.SharpDevelop.Gui.AboutSharpDevelopTabPage/>
</Controls>
<UseVisualStyleBackColor value = "True"/>
</System.Windows.Forms.TabPage>
<System.Windows.Forms.TabPage>
<Text value="${res:Dialog.About.VersionInfoTabName}"/>
<Controls>
<ICSharpCode.SharpDevelop.Gui.VersionInformationTabPage/>
</Controls>
<UseVisualStyleBackColor value = "True"/>
</System.Windows.Forms.TabPage>
</TabPages>
</System.Windows.Forms.TabControl>

1
src/Main/Base/Project/Src/Gui/Dialogs/ProjectOptionsView.cs

@ -90,6 +90,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs @@ -90,6 +90,7 @@ namespace ICSharpCode.SharpDevelop.Project.Dialogs
}
TabPage page = new TabPage(descriptor.Label);
page.UseVisualStyleBackColor = true;
page.Controls.Add(descriptor.DialogPanel.Control);
tabControl.TabPages.Add(page);
}

1
src/Main/Base/Project/Src/Gui/Dialogs/TabbedOptions.cs

@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.Gui @@ -48,6 +48,7 @@ namespace ICSharpCode.SharpDevelop.Gui
OptionPanels.Add(descriptor.DialogPanel);
TabPage page = new TabPage(descriptor.Label);
page.UseVisualStyleBackColor = true;
page.Controls.Add(descriptor.DialogPanel.Control);
((TabControl)ControlDictionary["optionPanelTabControl"]).TabPages.Add(page);
}

Loading…
Cancel
Save