Open retailcoder opened 5 months ago
Agree that this is a worthwhile inspection.
Would it not also be worth an inspection to discourage use of Option Base 1
though? Most languages are zero-based, and VBA itself fights against base 1:
There's already one π
Although, I'm not sure the part about ParamArray
is mentioned in the xmldoc. Or perhaps an inspection that flags (hint?) ParamArray
parameters when Option Base 1
is on would be more targeted.
What An inspection that locates qualified
VBA.Array()
function calls to warn about possibly unexpected behavior; depending on how it's implemented this one could be a hint under language opportunities, or a warning under code quality, ...or both πWhy Qualified
VBA.Array()
function calls yield an array that is always zero-based, but unqualified 'Array()' yields an array that is one-based givenOption Base 1
.Option Base 1
is specified, qualifiedVBA.Array()
calls become inconsistent zero-based arrays in a module where implicitly-sized arrays can reasonably be assumed to be one-based.Option Base 1
is NOT specified, qualifyingVBA.Array()
calls should warn/hint about the behavior being different than that of an unqualifiedArray()
call.Example This code should trigger the inspection:
QuickFixes Rubberduck could offer to remove the qualifier, albeit with a disclaimer that doing so may introduce off-by-one errors if the code makes any assumptions about array boundaries: it changes what the code does, not just how it does it.