diff --git a/Rules/AvoidAlias.cs b/Rules/AvoidAlias.cs index f40d961f1..fa6f94efa 100644 --- a/Rules/AvoidAlias.cs +++ b/Rules/AvoidAlias.cs @@ -318,6 +318,9 @@ private ScriptBlockExpressionAst GetDscResourceBody(CommandAst cmdAst) if (!(cmdAst.Parent is PipelineAst commandPipeline) || commandPipeline.PipelineElements.Count != 1 || commandPipeline.PipelineElements[0] != cmdAst +#if CORECLR + || commandPipeline.Background +#endif || !(commandPipeline.Parent is NamedBlockAst || commandPipeline.Parent is StatementBlockAst)) { return null; @@ -346,6 +349,9 @@ private ScriptBlockExpressionAst GetDscResourceBody(CommandAst cmdAst) if (index >= 0 && index + 1 < statements.Count && statements[index + 1] is PipelineAst bodyPipeline && bodyPipeline.PipelineElements.Count == 1 +#if CORECLR + && !bodyPipeline.Background +#endif && bodyPipeline.PipelineElements[0] is CommandExpressionAst bodyExpression) { if (HasStatementSeparator(cmdAst, bodyPipeline) diff --git a/Tests/Rules/AvoidUsingAlias.tests.ps1 b/Tests/Rules/AvoidUsingAlias.tests.ps1 index 1c2470447..7dc377774 100644 --- a/Tests/Rules/AvoidUsingAlias.tests.ps1 +++ b/Tests/Rules/AvoidUsingAlias.tests.ps1 @@ -208,6 +208,7 @@ Configuration PackageTest { Write-Output $(Verb Argument {}) @(Verb Argument {}) Verb Argument {} > $null + Verb Argument {} & if (Verb Argument {}) {} return Verb Argument {} if ($true) { @@ -227,7 +228,8 @@ Configuration PackageTest { $violations = @($rule.AnalyzeScript($configuration, $null)) - $violations.Count | Should -Be 5 + $expectedViolations = if ($PSVersionTable.PSVersion.Major -ge 7) { 6 } else { 5 } + $violations.Count | Should -Be $expectedViolations $violations | ForEach-Object { $_.SuggestedCorrections[0].Text | Should -Be 'Get-Verb' } @@ -241,6 +243,8 @@ Configuration PackageTest { gci .; {} gci . & {} + gci . + {} & } '@ $ast = [System.Management.Automation.Language.Parser]::ParseInput($target, [ref]$null, [ref]$null) @@ -252,7 +256,8 @@ Configuration PackageTest { $violations = @($rule.AnalyzeScript($configuration, $null)) - $violations.Count | Should -Be 3 + $expectedViolations = if ($PSVersionTable.PSVersion.Major -ge 7) { 4 } else { 3 } + $violations.Count | Should -Be $expectedViolations $violations | ForEach-Object { $_.Extent.Text | Should -Be 'gci' $_.SuggestedCorrections[0].Text | Should -Be 'Get-ChildItem'