@@ -56,31 +56,28 @@ public IEnumerable<DiagnosticRecord> AnalyzeScript(Ast ast, string fileName)
56
56
IEnumerable < Ast > scriptBlockAsts = ast . FindAll ( testAst => testAst is ScriptBlockAst , true ) ;
57
57
58
58
string funcName ;
59
+ IEnumerable < DiagnosticRecord > diagnosticRecords = Enumerable . Empty < DiagnosticRecord > ( ) ;
59
60
60
61
foreach ( FunctionDefinitionAst funcDefAst in funcDefAsts )
61
62
{
62
63
funcName = funcDefAst . Name ;
63
64
64
65
if ( funcDefAst . Parameters != null )
65
66
{
66
- foreach ( ParameterAst parameter in funcDefAst . Parameters )
67
- {
68
- if ( WrongCredentialUsage ( parameter ) )
69
- {
70
- yield return new DiagnosticRecord ( string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeError , funcName ) , funcDefAst . Extent , GetName ( ) , DiagnosticSeverity . Warning , fileName ) ;
71
- }
72
- }
67
+ diagnosticRecords . Concat ( GetViolations (
68
+ funcDefAst . Parameters ,
69
+ funcDefAst ,
70
+ string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeError , funcName ) ,
71
+ fileName ) ) ;
73
72
}
74
73
75
74
if ( funcDefAst . Body . ParamBlock != null )
76
75
{
77
- foreach ( ParameterAst parameter in funcDefAst . Body . ParamBlock . Parameters )
78
- {
79
- if ( WrongCredentialUsage ( parameter ) )
80
- {
81
- yield return new DiagnosticRecord ( string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeError , funcName ) , funcDefAst . Extent , GetName ( ) , DiagnosticSeverity . Warning , fileName ) ;
82
- }
83
- }
76
+ diagnosticRecords . Concat ( GetViolations (
77
+ funcDefAst . Body . ParamBlock . Parameters ,
78
+ funcDefAst ,
79
+ string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeError , funcName ) ,
80
+ fileName ) ) ;
84
81
}
85
82
}
86
83
@@ -94,15 +91,38 @@ public IEnumerable<DiagnosticRecord> AnalyzeScript(Ast ast, string fileName)
94
91
95
92
if ( scriptBlockAst . ParamBlock != null && scriptBlockAst . ParamBlock . Parameters != null )
96
93
{
97
- foreach ( ParameterAst parameter in scriptBlockAst . ParamBlock . Parameters )
94
+ diagnosticRecords . Concat ( GetViolations (
95
+ scriptBlockAst . ParamBlock . Parameters ,
96
+ scriptBlockAst ,
97
+ string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeErrorSB ) ,
98
+ fileName ) ) ;
99
+ }
100
+ }
101
+
102
+ foreach ( var dr in diagnosticRecords )
103
+ {
104
+ yield return dr ;
105
+ }
106
+ }
107
+
108
+ private IEnumerable < DiagnosticRecord > GetViolations (
109
+ IEnumerable < ParameterAst > parameterAsts ,
110
+ Ast parentAst ,
111
+ string errorMessage ,
112
+ string fileName )
113
+ {
114
+ foreach ( ParameterAst parameter in parameterAsts )
115
+ {
116
+ if ( WrongCredentialUsage ( parameter ) )
98
117
{
99
- if ( WrongCredentialUsage ( parameter ) )
100
- {
101
- yield return new DiagnosticRecord ( string . Format ( CultureInfo . CurrentCulture , Strings . UsePSCredentialTypeErrorSB ) , scriptBlockAst . Extent , GetName ( ) , DiagnosticSeverity . Warning , fileName ) ;
102
- }
118
+ yield return new DiagnosticRecord (
119
+ errorMessage ,
120
+ parentAst . Extent ,
121
+ GetName ( ) ,
122
+ DiagnosticSeverity . Warning ,
123
+ fileName ) ;
103
124
}
104
125
}
105
- }
106
126
}
107
127
108
128
private bool WrongCredentialUsage ( ParameterAst parameter )
0 commit comments