add semantics for @nogc