Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions src/Compilers/CSharp/Portable/CSharpResources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions src/Compilers/CSharp/Portable/CSharpResources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,9 @@
<data name="IDS_FeatureDefault" xml:space="preserve">
<value>default operator</value>
</data>
<data name="IDS_FeatureAsyncStreams" xml:space="preserve">
<value>async streams</value>
</data>
<data name="IDS_FeatureDefaultLiteral" xml:space="preserve">
<value>default literal</value>
</data>
Expand Down
3 changes: 3 additions & 0 deletions src/Compilers/CSharp/Portable/Errors/MessageID.cs
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,8 @@ internal enum MessageID
IDS_FeaturePrivateProtected = MessageBase + 12730,

IDS_FeatureAttributesOnBackingFields = MessageBase + 12731,

IDS_FeatureAsyncStreams = MessageBase + 12777, // PROTOTYPE(async-streams)
}

// Message IDs may refer to strings that need to be localized.
Expand Down Expand Up @@ -191,6 +193,7 @@ internal static LanguageVersion RequiredVersion(this MessageID feature)
return LanguageVersion.CSharp7_3;

// C# 7.2 features.
case MessageID.IDS_FeatureAsyncStreams: // PROTOTYPE(async-streams)
case MessageID.IDS_FeatureNonTrailingNamedArguments: // semantic check
Copy link
Copy Markdown
Member

@gafter gafter Dec 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be 7.3? #Resolved

Copy link
Copy Markdown
Member Author

@jcouv jcouv Dec 21, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It will become 8.0. But since I started work in a branch with 7.2 only, I stuck with 7.2 with a PROTOTYPE. #Resolved

case MessageID.IDS_FeatureLeadingDigitSeparator:
case MessageID.IDS_FeaturePrivateProtected:
Expand Down
284 changes: 215 additions & 69 deletions src/Compilers/CSharp/Portable/Generated/Syntax.xml.Internal.Generated.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -3272,37 +3272,40 @@ public override SyntaxNode VisitForStatement(ForStatementSyntax node)
public override SyntaxNode VisitForEachStatement(ForEachStatementSyntax node)
{
var forEachKeyword = this.VisitToken(node.ForEachKeyword);
var awaitKeyword = this.VisitToken(node.AwaitKeyword);
var openParenToken = this.VisitToken(node.OpenParenToken);
var type = (TypeSyntax)this.Visit(node.Type);
var identifier = this.VisitToken(node.Identifier);
var inKeyword = this.VisitToken(node.InKeyword);
var expression = (ExpressionSyntax)this.Visit(node.Expression);
var closeParenToken = this.VisitToken(node.CloseParenToken);
var statement = (StatementSyntax)this.Visit(node.Statement);
return node.Update(forEachKeyword, openParenToken, type, identifier, inKeyword, expression, closeParenToken, statement);
return node.Update(forEachKeyword, awaitKeyword, openParenToken, type, identifier, inKeyword, expression, closeParenToken, statement);
}

public override SyntaxNode VisitForEachVariableStatement(ForEachVariableStatementSyntax node)
{
var forEachKeyword = this.VisitToken(node.ForEachKeyword);
var awaitKeyword = this.VisitToken(node.AwaitKeyword);
var openParenToken = this.VisitToken(node.OpenParenToken);
var variable = (ExpressionSyntax)this.Visit(node.Variable);
var inKeyword = this.VisitToken(node.InKeyword);
var expression = (ExpressionSyntax)this.Visit(node.Expression);
var closeParenToken = this.VisitToken(node.CloseParenToken);
var statement = (StatementSyntax)this.Visit(node.Statement);
return node.Update(forEachKeyword, openParenToken, variable, inKeyword, expression, closeParenToken, statement);
return node.Update(forEachKeyword, awaitKeyword, openParenToken, variable, inKeyword, expression, closeParenToken, statement);
}

public override SyntaxNode VisitUsingStatement(UsingStatementSyntax node)
{
var usingKeyword = this.VisitToken(node.UsingKeyword);
var awaitKeyword = this.VisitToken(node.AwaitKeyword);
var openParenToken = this.VisitToken(node.OpenParenToken);
var declaration = (VariableDeclarationSyntax)this.Visit(node.Declaration);
var expression = (ExpressionSyntax)this.Visit(node.Expression);
var closeParenToken = this.VisitToken(node.CloseParenToken);
var statement = (StatementSyntax)this.Visit(node.Statement);
return node.Update(usingKeyword, openParenToken, declaration, expression, closeParenToken, statement);
return node.Update(usingKeyword, awaitKeyword, openParenToken, declaration, expression, closeParenToken, statement);
}

public override SyntaxNode VisitFixedStatement(FixedStatementSyntax node)
Expand Down Expand Up @@ -7302,7 +7305,7 @@ public static ForStatementSyntax ForStatement(StatementSyntax statement)
}

/// <summary>Creates a new ForEachStatementSyntax instance.</summary>
public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword, SyntaxToken awaitKeyword, SyntaxToken openParenToken, TypeSyntax type, SyntaxToken identifier, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
{
switch (forEachKeyword.Kind())
{
Expand All @@ -7311,6 +7314,14 @@ public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword
default:
throw new ArgumentException("forEachKeyword");
}
switch (awaitKeyword.Kind())
{
case SyntaxKind.AwaitKeyword:
case SyntaxKind.None:
break;
default:
throw new ArgumentException("awaitKeyword");
}
switch (openParenToken.Kind())
{
case SyntaxKind.OpenParenToken:
Expand Down Expand Up @@ -7345,24 +7356,24 @@ public static ForEachStatementSyntax ForEachStatement(SyntaxToken forEachKeyword
}
if (statement == null)
throw new ArgumentNullException(nameof(statement));
return (ForEachStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.ForEachStatement((Syntax.InternalSyntax.SyntaxToken)forEachKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, type == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax)type.Green, (Syntax.InternalSyntax.SyntaxToken)identifier.Node, (Syntax.InternalSyntax.SyntaxToken)inKeyword.Node, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
return (ForEachStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.ForEachStatement((Syntax.InternalSyntax.SyntaxToken)forEachKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)awaitKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, type == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.TypeSyntax)type.Green, (Syntax.InternalSyntax.SyntaxToken)identifier.Node, (Syntax.InternalSyntax.SyntaxToken)inKeyword.Node, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
}


/// <summary>Creates a new ForEachStatementSyntax instance.</summary>
public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, SyntaxToken identifier, ExpressionSyntax expression, StatementSyntax statement)
{
return SyntaxFactory.ForEachStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), SyntaxFactory.Token(SyntaxKind.OpenParenToken), type, identifier, SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
return SyntaxFactory.ForEachStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.OpenParenToken), type, identifier, SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
}

/// <summary>Creates a new ForEachStatementSyntax instance.</summary>
public static ForEachStatementSyntax ForEachStatement(TypeSyntax type, string identifier, ExpressionSyntax expression, StatementSyntax statement)
{
return SyntaxFactory.ForEachStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), SyntaxFactory.Token(SyntaxKind.OpenParenToken), type, SyntaxFactory.Identifier(identifier), SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
return SyntaxFactory.ForEachStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.OpenParenToken), type, SyntaxFactory.Identifier(identifier), SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
}

/// <summary>Creates a new ForEachVariableStatementSyntax instance.</summary>
public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToken forEachKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToken forEachKeyword, SyntaxToken awaitKeyword, SyntaxToken openParenToken, ExpressionSyntax variable, SyntaxToken inKeyword, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
{
switch (forEachKeyword.Kind())
{
Expand All @@ -7371,6 +7382,14 @@ public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToke
default:
throw new ArgumentException("forEachKeyword");
}
switch (awaitKeyword.Kind())
{
case SyntaxKind.AwaitKeyword:
case SyntaxKind.None:
break;
default:
throw new ArgumentException("awaitKeyword");
}
switch (openParenToken.Kind())
{
case SyntaxKind.OpenParenToken:
Expand Down Expand Up @@ -7398,18 +7417,18 @@ public static ForEachVariableStatementSyntax ForEachVariableStatement(SyntaxToke
}
if (statement == null)
throw new ArgumentNullException(nameof(statement));
return (ForEachVariableStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.ForEachVariableStatement((Syntax.InternalSyntax.SyntaxToken)forEachKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, variable == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)variable.Green, (Syntax.InternalSyntax.SyntaxToken)inKeyword.Node, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
return (ForEachVariableStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.ForEachVariableStatement((Syntax.InternalSyntax.SyntaxToken)forEachKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)awaitKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, variable == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)variable.Green, (Syntax.InternalSyntax.SyntaxToken)inKeyword.Node, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
}


/// <summary>Creates a new ForEachVariableStatementSyntax instance.</summary>
public static ForEachVariableStatementSyntax ForEachVariableStatement(ExpressionSyntax variable, ExpressionSyntax expression, StatementSyntax statement)
{
return SyntaxFactory.ForEachVariableStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), SyntaxFactory.Token(SyntaxKind.OpenParenToken), variable, SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
return SyntaxFactory.ForEachVariableStatement(SyntaxFactory.Token(SyntaxKind.ForEachKeyword), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.OpenParenToken), variable, SyntaxFactory.Token(SyntaxKind.InKeyword), expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
}

/// <summary>Creates a new UsingStatementSyntax instance.</summary>
public static UsingStatementSyntax UsingStatement(SyntaxToken usingKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax declaration, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
public static UsingStatementSyntax UsingStatement(SyntaxToken usingKeyword, SyntaxToken awaitKeyword, SyntaxToken openParenToken, VariableDeclarationSyntax declaration, ExpressionSyntax expression, SyntaxToken closeParenToken, StatementSyntax statement)
{
switch (usingKeyword.Kind())
{
Expand All @@ -7418,6 +7437,14 @@ public static UsingStatementSyntax UsingStatement(SyntaxToken usingKeyword, Synt
default:
throw new ArgumentException("usingKeyword");
}
switch (awaitKeyword.Kind())
{
case SyntaxKind.AwaitKeyword:
case SyntaxKind.None:
break;
default:
throw new ArgumentException("awaitKeyword");
}
switch (openParenToken.Kind())
{
case SyntaxKind.OpenParenToken:
Expand All @@ -7434,20 +7461,20 @@ public static UsingStatementSyntax UsingStatement(SyntaxToken usingKeyword, Synt
}
if (statement == null)
throw new ArgumentNullException(nameof(statement));
return (UsingStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.UsingStatement((Syntax.InternalSyntax.SyntaxToken)usingKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, declaration == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclarationSyntax)declaration.Green, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
return (UsingStatementSyntax)Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.SyntaxFactory.UsingStatement((Syntax.InternalSyntax.SyntaxToken)usingKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)awaitKeyword.Node, (Syntax.InternalSyntax.SyntaxToken)openParenToken.Node, declaration == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.VariableDeclarationSyntax)declaration.Green, expression == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.ExpressionSyntax)expression.Green, (Syntax.InternalSyntax.SyntaxToken)closeParenToken.Node, statement == null ? null : (Microsoft.CodeAnalysis.CSharp.Syntax.InternalSyntax.StatementSyntax)statement.Green).CreateRed();
}


/// <summary>Creates a new UsingStatementSyntax instance.</summary>
public static UsingStatementSyntax UsingStatement(VariableDeclarationSyntax declaration, ExpressionSyntax expression, StatementSyntax statement)
{
return SyntaxFactory.UsingStatement(SyntaxFactory.Token(SyntaxKind.UsingKeyword), SyntaxFactory.Token(SyntaxKind.OpenParenToken), declaration, expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
return SyntaxFactory.UsingStatement(SyntaxFactory.Token(SyntaxKind.UsingKeyword), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.OpenParenToken), declaration, expression, SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
}

/// <summary>Creates a new UsingStatementSyntax instance.</summary>
public static UsingStatementSyntax UsingStatement(StatementSyntax statement)
{
return SyntaxFactory.UsingStatement(SyntaxFactory.Token(SyntaxKind.UsingKeyword), SyntaxFactory.Token(SyntaxKind.OpenParenToken), default(VariableDeclarationSyntax), default(ExpressionSyntax), SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
return SyntaxFactory.UsingStatement(SyntaxFactory.Token(SyntaxKind.UsingKeyword), default(SyntaxToken), SyntaxFactory.Token(SyntaxKind.OpenParenToken), default(VariableDeclarationSyntax), default(ExpressionSyntax), SyntaxFactory.Token(SyntaxKind.CloseParenToken), statement);
}

/// <summary>Creates a new FixedStatementSyntax instance.</summary>
Expand Down
Loading