-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Null member access operators ?. and ?[]
#10960
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
fa7e3a2
5b55dba
f226a4b
345f687
ea0364f
a73d726
a453d25
67b1317
a2d6723
f946cbb
cbbacd3
9d02ad2
36177cf
87b380e
d993668
4d65d27
c63ba46
6c1b5ab
fef4f9f
51e0453
f75f71b
b27a8f2
a39ae8d
b3a94dd
50764c7
6d3af7f
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -404,6 +404,7 @@ internal List<CompletionResult> GetResultHelper(CompletionContext completionCont | |
|
|
||
adityapatwardhan marked this conversation as resolved.
Show resolved
Hide resolved
adityapatwardhan marked this conversation as resolved.
Show resolved
Hide resolved
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adityapatwardhan, your last commit had 1 failures in Exception calling "Invoke" with "0" argument(s): "The runspace state is not valid for this operation."
at <ScriptBlock>, D:\a\1\s\test\powershell\Modules\Microsoft.PowerShell.Core\Enter-PSHostProcess.Tests.ps1: line 136
136: $ps.AddScript('$pid').Invoke() | Should -Be $pwshId
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adityapatwardhan, your last commit had 1 failures in Expected an exception, with FullyQualifiedErrorId 'Argument' to be thrown, but the FullyQualifiedErrorId was 'MethodNotFound'. from D:\a\1\s\test\powershell\Language\Operators\NullConditional.Tests.ps1:343 char:15
+ { (Get-Date '11/11/2019')?.$methodName() } | Should -Thro ?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at <ScriptBlock>, D:\a\1\s\test\powershell\Language\Operators\NullConditional.Tests.ps1: line 343
343: { (Get-Date '11/11/2019')?.$methodName() } | Should -Throw -ErrorId 'Argument'
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adityapatwardhan, your last commit had 1 failures in Expected an exception, with FullyQualifiedErrorId 'Argument' to be thrown, but the FullyQualifiedErrorId was 'MethodNotFound'. from /home/vsts/work/1/s/test/powershell/Language/Operators/NullConditional.Tests.ps1:343 char:15
+ { (Get-Date '11/11/2019')?.$methodName() } | Should -Thro ?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at <ScriptBlock>, /home/vsts/work/1/s/test/powershell/Language/Operators/NullConditional.Tests.ps1: line 343
343: { (Get-Date '11/11/2019')?.$methodName() } | Should -Throw -ErrorId 'Argument'
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adityapatwardhan, your last commit had 1 failures in Expected an exception, with FullyQualifiedErrorId 'Argument' to be thrown, but the FullyQualifiedErrorId was 'MethodNotFound'. from /Users/runner/runners/2.160.0/work/1/s/test/powershell/Language/Operators/NullConditional.Tests.ps1:343 char:15
+ { (Get-Date '11/11/2019')?.$methodName() } | Should -Thro ?
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
at <ScriptBlock>, /Users/runner/runners/2.160.0/work/1/s/test/powershell/Language/Operators/NullConditional.Tests.ps1: line 343
343: { (Get-Date '11/11/2019')?.$methodName() } | Should -Throw -ErrorId 'Argument'
Collaborator
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @adityapatwardhan, your last commit had 20 failures in Verify Markdown Links.Verify links in /home/vsts/work/1/s/README.md.https://docs.microsoft.com/powershell/scripting/setup/installing-powershell-core-on-windows?view=powershell-6 should work retry of URL failed with error: Response status code does not indicate success: 404 (Not Found).
at <ScriptBlock>, /home/vsts/work/1/s/test/common/markdown/markdown-link.tests.ps1: line 117
117: throw "retry of URL failed with error: $($_.Exception.Message)"
Verify Markdown Links.Verify links in /home/vsts/work/1/s/README.md.https://docs.microsoft.com/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6#ubuntu-1804 should work retry of URL failed with error: Response status code does not indicate success: 404 (Not Found).
at <ScriptBlock>, /home/vsts/work/1/s/test/common/markdown/markdown-link.tests.ps1: line 117
117: throw "retry of URL failed with error: $($_.Exception.Message)"
Verify Markdown Links.Verify links in /home/vsts/work/1/s/README.md.https://docs.microsoft.com/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6#ubuntu-1604 should work retry of URL failed with error: Response status code does not indicate success: 404 (Not Found).
at <ScriptBlock>, /home/vsts/work/1/s/test/common/markdown/markdown-link.tests.ps1: line 117
117: throw "retry of URL failed with error: $($_.Exception.Message)"
Verify Markdown Links.Verify links in /home/vsts/work/1/s/README.md.https://docs.microsoft.com/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6#debian-9 should work retry of URL failed with error: Response status code does not indicate success: 404 (Not Found).
at <ScriptBlock>, /home/vsts/work/1/s/test/common/markdown/markdown-link.tests.ps1: line 117
117: throw "retry of URL failed with error: $($_.Exception.Message)"
Verify Markdown Links.Verify links in /home/vsts/work/1/s/README.md.https://docs.microsoft.com/powershell/scripting/setup/installing-powershell-core-on-linux?view=powershell-6#centos-7 should work retry of URL failed with error: Response status code does not indicate success: 404 (Not Found).
at <ScriptBlock>, /home/vsts/work/1/s/test/common/markdown/markdown-link.tests.ps1: line 117
117: throw "retry of URL failed with error: $($_.Exception.Message)"
|
||
| case TokenKind.Dot: | ||
| case TokenKind.ColonColon: | ||
| case TokenKind.QuestionDot: | ||
| replacementIndex += tokenAtCursor.Text.Length; | ||
| replacementLength = 0; | ||
| result = CompletionCompleters.CompleteMember(completionContext, @static: tokenAtCursor.Kind == TokenKind.ColonColon); | ||
|
|
||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -7347,11 +7347,11 @@ private ExpressionAst CheckPostPrimaryExpressionOperators(Token token, Expressio | |
| // To support fluent style programming, allow newlines after the member access operator. | ||
| SkipNewlines(); | ||
|
|
||
| if (token.Kind == TokenKind.Dot || token.Kind == TokenKind.ColonColon) | ||
| if (token.Kind == TokenKind.Dot || token.Kind == TokenKind.ColonColon || token.Kind == TokenKind.QuestionDot) | ||
|
||
| { | ||
| expr = MemberAccessRule(expr, token); | ||
| } | ||
| else if (token.Kind == TokenKind.LBracket) | ||
| else if (token.Kind == TokenKind.LBracket || token.Kind == TokenKind.QuestionLBracket) | ||
| { | ||
| expr = ElementAccessRule(expr, token); | ||
| } | ||
|
|
@@ -7772,8 +7772,12 @@ private ExpressionAst MemberAccessRule(ExpressionAst targetExpr, Token operatorT | |
| } | ||
| } | ||
|
|
||
| return new MemberExpressionAst(ExtentOf(targetExpr, member), | ||
| targetExpr, member, operatorToken.Kind == TokenKind.ColonColon); | ||
| return new MemberExpressionAst( | ||
| ExtentOf(targetExpr, member), | ||
| targetExpr, | ||
| member, | ||
| @static: operatorToken.Kind == TokenKind.ColonColon, | ||
| nullConditional: operatorToken.Kind == TokenKind.QuestionDot); | ||
| } | ||
|
|
||
| private ExpressionAst MemberInvokeRule(ExpressionAst targetExpr, Token lBracket, Token operatorToken, CommandElementAst member) | ||
|
|
@@ -7801,7 +7805,13 @@ private ExpressionAst MemberInvokeRule(ExpressionAst targetExpr, Token lBracket, | |
| lastExtent = argument.Extent; | ||
| } | ||
|
|
||
| return new InvokeMemberExpressionAst(ExtentOf(targetExpr, lastExtent), targetExpr, member, arguments, operatorToken.Kind == TokenKind.ColonColon); | ||
| return new InvokeMemberExpressionAst( | ||
| ExtentOf(targetExpr, lastExtent), | ||
| targetExpr, | ||
| member, | ||
| arguments, | ||
| operatorToken.Kind == TokenKind.ColonColon, | ||
| operatorToken.Kind == TokenKind.QuestionDot); | ||
| } | ||
|
|
||
| private List<ExpressionAst> InvokeParamParenListRule(Token lParen, out IScriptExtent lastExtent) | ||
|
|
@@ -7923,7 +7933,7 @@ private ExpressionAst ElementAccessRule(ExpressionAst primaryExpression, Token l | |
| rBracket = null; | ||
| } | ||
|
|
||
| return new IndexExpressionAst(ExtentOf(primaryExpression, ExtentFromFirstOf(rBracket, indexExpr)), primaryExpression, indexExpr); | ||
| return new IndexExpressionAst(ExtentOf(primaryExpression, ExtentFromFirstOf(rBracket, indexExpr)), primaryExpression, indexExpr, lBracket.Kind == TokenKind.QuestionLBracket); | ||
| } | ||
|
|
||
| #endregion Expressions | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.