Skip to content

Commit

Permalink
Add failing test
Browse files Browse the repository at this point in the history
  • Loading branch information
Youssef1313 committed Mar 6, 2022
1 parent b30ecba commit eef482e
Showing 1 changed file with 29 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,19 @@ private SyntaxTree Parse(string text, params string[] defines)
return SyntaxFactory.ParseSyntaxTree(itext, options);
}

private SyntaxTree Parse6(string text)
private SyntaxTree Parse(string text, LanguageVersion languageVersion)
{
var options = new CSharpParseOptions(languageVersion: LanguageVersion.CSharp6);
var options = new CSharpParseOptions(languageVersion: languageVersion);
var itext = SourceText.From(text);
return SyntaxFactory.ParseSyntaxTree(itext, options);
}

private SyntaxTree Parse6(string text)
=> Parse(text, LanguageVersion.CSharp6);

private SyntaxTree ParsePreview(string text)
=> Parse(text, LanguageVersion.Preview);

[Fact]
public void TestChangeClassNameWithNonMatchingMethod()
{
Expand All @@ -51,6 +57,27 @@ public void TestChangeClassNameWithNonMatchingMethod()
SyntaxKind.IdentifierToken);
}

[Fact]
public void Test()
{
var text = @"#nullable enable
public class C {
public void M(string? x !!) { // no error.
}
}";
var oldTree = this.ParsePreview(text);
var newTree = oldTree.WithReplaceFirst("?", "");
Assert.Equal(0, oldTree.GetCompilationUnitRoot().Errors().Length);

// following assert fails.
// newTree has "error CS1003: Syntax error, ',' expected"
Assert.Equal(0, newTree.GetCompilationUnitRoot().Errors().Length);

var diffs = SyntaxDifferences.GetRebuiltNodes(oldTree, newTree);
TestDiffsInOrder(diffs);
}

[Fact]
public void TestChangeClassNameToNotMatchConstructor()
{
Expand Down Expand Up @@ -432,7 +459,6 @@ public void TestStatementToGlobalStatementChange()
SyntaxKind.IdentifierName,
SyntaxKind.SemicolonToken);
}

#region "Regression"

#if false
Expand Down

0 comments on commit eef482e

Please sign in to comment.