## Why is this an issue?

While it is technically correct to assign to parameters from within method bodies, doing so before the parameter value is read is likely a bug. Instead, initial values of parameters should be, if not treated as `readonly` then at least read before reassignment.

### Noncompliant code example

    Module Module1
        Sub Foo(ByVal a As Integer)
            a = 42                  ' Noncompliant
        End Sub
    End Module

### Compliant solution

    Module Module1
        Sub Foo(ByVal a As Integer)
            Dim tmp = a
            tmp = 42
        End Sub
    End Module

### Exceptions

`ByRef` parameters are ignored.

    Module Module1
        Sub Foo(ByRef a As Integer)
            a = 42                  ' Ignored; it is a ByRef parameter
        End Sub
    End Module