]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/c/c-typeck.c
C++ FE: offer suggestions for misspelled field names
authorDavid Malcolm <dmalcolm@redhat.com>
Fri, 20 Nov 2015 01:26:00 +0000 (01:26 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Fri, 20 Nov 2015 01:26:00 +0000 (01:26 +0000)
commit8ece8dfbd9cf38e10e0266ed22ead5bb389d8125
tree3572616c35cc69549b3ff9761e6d1af8fb70780b
parent32c912aad1f29233f15da6baf33c765e3b6213fd
C++ FE: offer suggestions for misspelled field names

gcc/c/ChangeLog:
* c-typeck.c (lookup_field_fuzzy): Move determination of closest
candidate into a new function, find_closest_identifier.

gcc/cp/ChangeLog:
* cp-tree.h (lookup_member_fuzzy): New decl.
* search.c: Include spellcheck.h.
(class lookup_field_fuzzy_info): New class.
(lookup_field_fuzzy_info::fuzzy_lookup_fnfields): New.
(lookup_field_fuzzy_info::fuzzy_lookup_field): New.
(lookup_field_fuzzy_r): New.
(lookup_member_fuzzy): New.
* typeck.c (finish_class_member_access_expr): When issuing
a "has no member named" error, call lookup_member_fuzzy, and
offer any result as a suggestion.

gcc/ChangeLog:
* spellcheck-tree.c (find_closest_identifier): New function, taken
from c/c-typeck.c:lookup_field_fuzzy, with NULL corrected to
NULL_TREE in two places.
* spellcheck.h (find_closest_identifier): New decl.

gcc/testsuite/ChangeLog:
* g++.dg/spellcheck-fields.C: New file.

From-SVN: r230638
gcc/c/ChangeLog
gcc/c/c-typeck.c
gcc/cp/ChangeLog
gcc/cp/cp-tree.h
gcc/cp/search.c
gcc/cp/typeck.c
gcc/spellcheck-tree.c
gcc/spellcheck.h
gcc/testsuite/ChangeLog