Object@ is a type, so if you write: void foo(Object@ o) {...It means the compiler statically refuses you to give a nullable type to foo. So inside foo there is no need for a run time test.Good work :-) Bye, bearophile
Change line 14 from OpToken = r"\?", into OpToken = r"\@", And it works as you like. ;) I will change it too.