Why is this an issue?

Numbers can be shifted with the << and >> operators, but the right operand of the operation needs to be an int or a type that has an implicit conversion to int. However, when the left operand is an object, the compiler’s type checking is turned off, so you can pass anything to the right of a shift operator and have it compile. And if the argument can’t be implicitly converted to int at runtime, then a RuntimeBinderException will be raised.

Dim o As Object = 5
Dim x As Integer = 5

x = o >> 5 ' Noncompliant
x = x << o ' Noncompliant

Exceptions

This rule does not raise when the left or the right expression is Nothing.

x = Nothing >> 5
x = 5 << Nothing

Resources

Documentation