Commit b2810003 by Ian Lance Taylor

compiler: Report unused variables initialized to function literals.

    
    Fixes golang/go#12317.
    
    Reviewed-on: https://go-review.googlesource.com/13908

From-SVN: r227285
parent 26343eaf
9ae5835a010a55fba875103be5f4e61485a97099 3aa2ea272e475010da8b480fc3095d0cd7254d12
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the gofrontend repository. merge done from the gofrontend repository.
...@@ -3156,6 +3156,7 @@ Check_types_traverse::variable(Named_object* named_object) ...@@ -3156,6 +3156,7 @@ Check_types_traverse::variable(Named_object* named_object)
error_at(var->location(), error_at(var->location(),
"incompatible type in initialization (%s)", "incompatible type in initialization (%s)",
reason.c_str()); reason.c_str());
init = Expression::make_error(named_object->location());
var->clear_init(); var->clear_init();
} }
else if (init != NULL else if (init != NULL
...@@ -3180,13 +3181,13 @@ Check_types_traverse::variable(Named_object* named_object) ...@@ -3180,13 +3181,13 @@ Check_types_traverse::variable(Named_object* named_object)
no->message_name().c_str()); no->message_name().c_str());
} }
} }
else if (!var->is_used() if (!var->is_used()
&& !var->is_global() && !var->is_global()
&& !var->is_parameter() && !var->is_parameter()
&& !var->is_receiver() && !var->is_receiver()
&& !var->type()->is_error() && !var->type()->is_error()
&& (init == NULL || !init->is_error_expression()) && (init == NULL || !init->is_error_expression())
&& !Lex::is_invalid_identifier(named_object->name())) && !Lex::is_invalid_identifier(named_object->name()))
error_at(var->location(), "%qs declared and not used", error_at(var->location(), "%qs declared and not used",
named_object->message_name().c_str()); named_object->message_name().c_str());
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment