change macro + using handling
catch invalid call to static function on abstract instance (closes #2120)