The guidance engine relies on the use of name_id == EMPTY_NAMEID in many places where we decide between announcing/not announcing a turn. These checks interact with requiresNameAnnounced, which assumes turning onto a road without name doesn't require an announcement.
The checks for EMPTY_NAMEID precede the call of requiresNameAnnounced to ensure that roads without names are treated correctly.
With the addition of more and more fields to the field referenced to by name_id, a name_id != EMPTY_NAMEID can be true, even though the road doesn't have a name or a ref.
We need to revisit all checks that compare for EMPTY_NAMEID and ensure that they are working as intended when destination:ref (for example) is present on a road without name or ref.
Places to check:
The guidance engine relies on the use of
name_id == EMPTY_NAMEIDin many places where we decide between announcing/not announcing a turn. These checks interact with requiresNameAnnounced, which assumes turning onto a road without name doesn't require an announcement.The checks for EMPTY_NAMEID precede the call of requiresNameAnnounced to ensure that roads without names are treated correctly.
With the addition of more and more fields to the field referenced to by
name_id, aname_id != EMPTY_NAMEIDcan be true, even though the road doesn't have a name or a ref.We need to revisit all checks that compare for
EMPTY_NAMEIDand ensure that they are working as intended whendestination:ref(for example) is present on a road without name or ref.Places to check: