ParameterCanBeByValInspection - tommy9/Rubberduck GitHub Wiki

Description: Parameter can be passed by value

Type: CodeInspectionType.CodeQualityIssues

Default severity: CodeInspectionSeverity.Suggestion

This inspection finds procedure parameters that are passed by reference, but never assigned to.

Example:

Parameter foo is passed ByRef, but is never assigned to - passing it ByVal would be more appropriate:

Public Sub DoSomething(ByRef foo As Integer)
    DoSomethingElse foo
End Sub

A ByRef parameter can technically be reassigned by the called procedure, and the modified value is visible to the caller; if a method doesn't assign such a parameter, that parameter can safely be passed by value instead.


QuickFixes

QuickFix: Pass parameter by value

Public Sub DoSomething(ByVal foo As Integer)
    DoSomethingElse foo
End Sub

This quickfix replaces ByRef with ByVal in the method's signature for the unassigned parameter.