lexical instead of dynamic warnings