|
1 |
| -using System.Collections.Immutable; |
| 1 | +using System.Collections.Immutable; |
2 | 2 | using Microsoft.CodeAnalysis;
|
3 | 3 | using Microsoft.CodeAnalysis.Diagnostics;
|
4 | 4 | using Microsoft.CodeAnalysis.CSharp;
|
@@ -106,21 +106,28 @@ private static bool IsWebTrivialExpression(ExpressionSyntax syntax)
|
106 | 106 | {
|
107 | 107 | return true;
|
108 | 108 | }
|
| 109 | + |
| 110 | + if (syntax is ConditionalExpressionSyntax conditionalExpressionSyntax) |
| 111 | + { |
| 112 | + return IsWebTrivialExpression(conditionalExpressionSyntax.Condition) && |
| 113 | + IsWebTrivialExpression(conditionalExpressionSyntax.WhenFalse) && |
| 114 | + IsWebTrivialExpression(conditionalExpressionSyntax.WhenTrue); |
| 115 | + } |
109 | 116 | return syntax.IsConstant() || IsConstViewInvoke(syntax);
|
110 | 117 | }
|
111 | 118 |
|
| 119 | + private static readonly string[] ResultMethodNames = {"View", "PartialView", "File"}; |
| 120 | + |
112 | 121 | private static bool IsConstViewInvoke(ExpressionSyntax syntax)
|
113 | 122 | {
|
114 |
| - var invokeExpression = syntax as InvocationExpressionSyntax; |
115 |
| - |
116 |
| - if (invokeExpression == null) return false; |
| 123 | + if (!(syntax is InvocationExpressionSyntax invokeExpression)) return false; |
117 | 124 |
|
118 | 125 | var methodName = (invokeExpression.Expression as SimpleNameSyntax)?.Identifier.Text;
|
119 |
| - var isViewCall = methodName == "View" || methodName == "PartialView"; |
120 | 126 |
|
121 | 127 | var arguments = invokeExpression.ArgumentList.Arguments;
|
122 | 128 |
|
123 |
| - return isViewCall && (arguments.All(argument => IsWebTrivialExpression(argument.Expression))); |
| 129 | + return ResultMethodNames.Contains(methodName) && |
| 130 | + arguments.All(argument => IsWebTrivialExpression(argument.Expression)); |
124 | 131 | }
|
125 | 132 |
|
126 | 133 |
|
|
0 commit comments