Skip to content

Commit

Permalink
Fixes SyntaxFactory.UsingDirective overload which always throws (#68762)
Browse files Browse the repository at this point in the history
Fixes #68761
  • Loading branch information
GrahamTheCoder authored Jun 27, 2023
1 parent ab87b4f commit 87286e9
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public partial class SyntaxFactory
{
/// <summary>Creates a new UsingDirectiveSyntax instance.</summary>
public static UsingDirectiveSyntax UsingDirective(SyntaxToken staticKeyword, NameEqualsSyntax? alias, NameSyntax name)
=> UsingDirective(globalKeyword: default, usingKeyword: default, staticKeyword, unsafeKeyword: default, alias, namespaceOrType: name, semicolonToken: default);
=> UsingDirective(globalKeyword: default, usingKeyword: Token(SyntaxKind.UsingKeyword), staticKeyword, unsafeKeyword: default, alias, namespaceOrType: name, semicolonToken: Token(SyntaxKind.SemicolonToken));

/// <summary>Creates a new UsingDirectiveSyntax instance.</summary>
public static UsingDirectiveSyntax UsingDirective(SyntaxToken globalKeyword, SyntaxToken usingKeyword, SyntaxToken staticKeyword, NameEqualsSyntax? alias, NameSyntax name, SyntaxToken semicolonToken)
Expand Down
12 changes: 12 additions & 0 deletions src/Compilers/CSharp/Test/Syntax/Syntax/SyntaxFactoryTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,18 @@ public void AlternateVerbatimString()
Assert.Equal("$@\"", token.ValueText);
}

[Fact]
public void UsingDirective()
{
var someValidName = SyntaxFactory.ParseName("System.String");
var usingDirective = SyntaxFactory.UsingDirective(SyntaxFactory.Token(SyntaxKind.StaticKeyword), null, someValidName);
Assert.NotNull(usingDirective);
Assert.Equal(SyntaxKind.StaticKeyword, usingDirective.StaticKeyword.Kind());
Assert.Null(usingDirective.Alias);
Assert.Equal("System.String", usingDirective.Name.ToFullString());
Assert.Equal(SyntaxKind.SemicolonToken, usingDirective.SemicolonToken.Kind());
}

[Fact]
public void SyntaxTree()
{
Expand Down

0 comments on commit 87286e9

Please sign in to comment.