@@ -611,12 +611,13 @@ public string VariableNameWithoutScope(VariablePath variablePath)
611611 /// <returns></returns>
612612 public bool HasSplattedVariable ( CommandAst cmdAst )
613613 {
614- if ( cmdAst == null || cmdAst . CommandElements == null )
615- {
616- return false ;
617- }
618-
619- return cmdAst . CommandElements . Any ( cmdElem => cmdElem is VariableExpressionAst && ( cmdElem as VariableExpressionAst ) . Splatted ) ;
614+ return cmdAst != null
615+ && cmdAst . CommandElements != null
616+ && cmdAst . CommandElements . Any ( cmdElem =>
617+ {
618+ var varExprAst = cmdElem as VariableExpressionAst ;
619+ return varExprAst != null && varExprAst . Splatted ;
620+ } ) ;
620621 }
621622
622623 /// <summary>
@@ -663,29 +664,31 @@ public bool PositionalParameterUsed(CommandAst cmdAst, bool moreThanThreePositio
663664
664665 foreach ( CommandElementAst ceAst in cmdAst . CommandElements )
665666 {
666- if ( ceAst is CommandParameterAst )
667+ var cmdParamAst = ceAst as CommandParameterAst ;
668+ if ( cmdParamAst != null )
669+ {
670+ // Skip if it's a switch parameter
671+ if ( switchParams != null &&
672+ switchParams . Any (
673+ pm => String . Equals (
674+ pm . Name ,
675+ cmdParamAst . ParameterName , StringComparison . OrdinalIgnoreCase ) ) )
667676 {
668- // Skip if it's a switch parameter
669- if ( switchParams != null &&
670- switchParams . Any ( pm => String . Equals ( pm . Name , ( ceAst as CommandParameterAst ) . ParameterName , StringComparison . OrdinalIgnoreCase ) ) )
671- {
672- continue ;
673- }
674-
675-
676- parameters += 1 ;
677+ continue ;
678+ }
677679
678- if ( ( ceAst as CommandParameterAst ) . Argument != null )
679- {
680- arguments += 1 ;
681- }
680+ parameters += 1 ;
682681
683- }
684- else
682+ if ( cmdParamAst . Argument != null )
685683 {
686684 arguments += 1 ;
687685 }
688686
687+ }
688+ else
689+ {
690+ arguments += 1 ;
691+ }
689692 }
690693
691694 // if not the first element in a pipeline, increase the number of arguments by 1
0 commit comments