diff --git a/.github/workflows/build-ilspy.yml b/.github/workflows/build-ilspy.yml index 14ea2fcaa..eed4d6644 100644 --- a/.github/workflows/build-ilspy.yml +++ b/.github/workflows/build-ilspy.yml @@ -56,7 +56,7 @@ jobs: env: Tests1: ICSharpCode.Decompiler.Tests\bin\${{ matrix.configuration }}\net6.0-windows\win-x64\ICSharpCode.Decompiler.Tests.dll Tests2: ILSpy.Tests\bin\${{ matrix.configuration }}\net6.0-windows\ILSpy.Tests.dll - Tests3: ILSpy.BamlDecompiler.Tests\bin\${{ matrix.configuration }}\net6.0-windows\ILSpy.BamlDecompiler.Tests.dll + Tests3: ILSpy.BamlDecompiler.Tests\bin\${{ matrix.configuration }}\net6.0-windows\win-x64\ILSpy.BamlDecompiler.Tests.dll - name: Test Report uses: dorny/test-reporter@v1 diff --git a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs index 1a9688e44..6d804cf09 100644 --- a/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs +++ b/ICSharpCode.Decompiler/CSharp/Transforms/IntroduceQueryExpressions.cs @@ -266,7 +266,8 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms { ParameterDeclaration p1 = lambda.Parameters.ElementAt(0); ParameterDeclaration p2 = lambda.Parameters.ElementAt(1); - if (p1.Name == element1.Name && (p2.Name == element2.Name || mre.MemberName == "GroupJoin")) + if (ValidateParameter(p1) && ValidateParameter(p2) + && p1.Name == element1.Name && (p2.Name == element2.Name || mre.MemberName == "GroupJoin")) { QueryExpression query = new QueryExpression(); query.Clauses.Add(MakeFromClause(element1, source1.Detach())); @@ -374,7 +375,7 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms if (expr is LambdaExpression lambda && lambda.Parameters.Count == 1 && lambda.Body is Expression) { ParameterDeclaration p = lambda.Parameters.Single(); - if (p.ParameterModifier == ParameterModifier.None) + if (ValidateParameter(p)) { parameter = p; body = (Expression)lambda.Body; @@ -385,5 +386,10 @@ namespace ICSharpCode.Decompiler.CSharp.Transforms body = null; return false; } + + private static bool ValidateParameter(ParameterDeclaration p) + { + return p.ParameterModifier == ParameterModifier.None && p.Attributes.Count == 0; + } } }