renamed to SemanticCheckVisitor