Skip to content

Commit 32bcb67

Browse files
Copilotbergmeister
andauthored
Handle nullable ValidateRange parameter types
Co-authored-by: bergmeister <9250262+bergmeister@users.noreply.github.com>
1 parent 919cef7 commit 32bcb67

2 files changed

Lines changed: 5 additions & 0 deletions

File tree

‎Rules/AvoidValidateRangeTypeMismatch.cs‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,8 @@ public IEnumerable<DiagnosticRecord> AnalyzeScript(Ast ast, string fileName)
6868
parameterType = parameterType.GetElementType();
6969
}
7070

71+
parameterType = Nullable.GetUnderlyingType(parameterType) ?? parameterType;
72+
7173
if (!FloatingPointAndDecimalTypes.Contains(parameterType))
7274
{
7375
continue;

‎Tests/Rules/AvoidValidateRangeTypeMismatch.tests.ps1‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,9 @@ namespace Contoso
4444
'function Test { param([double][ValidateRange(1, 2)]$Value) }'
4545
'function Test { param([single][ValidateRange(-1, 2)]$Value) }'
4646
'function Test { param([decimal][ValidateRange(1, 2)]$Value) }'
47+
'function Test { param([Nullable[double]][ValidateRange(1, 2)]$Value) }'
48+
'function Test { param([Nullable[single]][ValidateRange(1, 2)]$Value) }'
49+
'function Test { param([Nullable[decimal]][ValidateRange(1, 2)]$Value) }'
4750
'function Test { param([double[]][ValidateRange(1, 2)]$Values) }'
4851
'function Test { param([double][System.Management.Automation.ValidateRangeAttribute(1, 2)]$Value) }'
4952
'function Test { param([double][ValidateRange([int]0.0, [int]100.0)]$Value) }'

0 commit comments

Comments
 (0)