\brief Return true if this ref is a name or a nested sequence of only names Useful for determining if iteration is possible without recursion or inner loops
| 2154 | /// |
| 2155 | /// Useful for determining if iteration is possible without recursion or inner loops |
| 2156 | bool IsNameSequence() const { |
| 2157 | if (IsName()) return true; |
| 2158 | if (const auto* nested = nested_refs()) { |
| 2159 | for (const auto& ref : *nested) { |
| 2160 | if (!ref.IsName()) return false; |
| 2161 | } |
| 2162 | return !nested->empty(); |
| 2163 | } |
| 2164 | return false; |
| 2165 | } |
| 2166 | |
| 2167 | const FieldPath* field_path() const { |
| 2168 | return IsFieldPath() ? &std::get<FieldPath>(impl_) : NULLPTR; |
nothing calls this directly
no test coverage detected