I unwittingly (witlessly??) defined a protected property named _columnCount of type Integeer and did not get an error in the property definition dialog. Maybe this is intended because for all it knows there's an Integeer class somewhere, or will be. IDK. Probably it should not allow any class name that isn't built-in or isn't defined in the solution. I'd be okay with not being able to make an Integeer property without first making an Integeer class. That would have been the end of it at any rate.
What ended up happening was two things:
1) I wrote this line of code and didn't get an error in real time from Analyser:
_columnCount = GetTrueColumnCount() # this method returns an Integer, not an Integeer
2) I then tried to pass _columnCount as the 3rd argument to another method with this signature:
list As Array(Of T), value As T, Optional count As Integer = list.Count
When I did this, I got an error to the effect, "Cannot pass type Array(Of String) to argument requiring Array(Of T)". Which of course is absurd.
Anyway I noticed that if I dropped the optional 3rd argument, the strange error went away. Further fiddling revealed that if I would hover over the offending property reference the tooltip would read "Property _columnCount As Unknown". Which led me to the typo in the property definition. But I had been paying attention to the red gutter diamond and its error message about the first argument.
So I guess this is a double bug: a property shouldn't be definable as a non-existent type, and the error message I should have gotten using that malformed class should have pointed to the argument that was the actual problem.