Skip to content

Rule request: Avoid reserved words for functions names #2099

Open
@iRon7

Description

@iRon7

According the document about Reserved Words, the reserved words that cannot be used as identifiers because they
have a special meaning in PowerShell
:


about_Reserved_Words

Short description

Lists the reserved words that cannot be used as identifiers because they
have a special meaning in PowerShell.

Long description

There are certain words that have special meaning in PowerShell. When these
words appear without quotation marks, PowerShell attempts to apply their
special meaning rather than treating them as character strings. To use these
words as parameter arguments in a command or script without invoking their
special meaning, enclose the reserved words in quotation marks.

The following are the reserved words in PowerShell:

assembly         exit            process
base             filter          public
begin            finally         return
break            for             sequence
catch            foreach         static
class            from (*)        switch
command          function        throw
configuration    hidden          trap
continue         if              try
data             in              type
define (*)       inlinescript    until
do               interface       using
dynamicparam     module          var (*)
else             namespace       while
elseif           parallel        workflow
end              param
enum             private

(*) These keywords are reserved for future use.

It would be nice if the script analyzer warns (or even errors) if any of these names are used for a function name.
E.g. I would expect the following script definition to return an issue:

Invoke-ScriptAnalyzer -ScriptDefinition {function if {}}.ToString()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions