public Object visit(Variable node) {
            String name = node.getName();
            Variable v = mScope.getDeclaredVariable(name);
            if (v == null) {
                mScope.declareVariable(node);
            }
            else {
                error("variable.declared", name, node);
                error("variable.declared.here", name, v);
            }

            TypeName typeName = node.getTypeName();
            check(typeName);
            node.setType(typeName.getType());

            return null;
        }