MCPcopy Create free account
hub / github.com/Snapchat/Valdi / outputToStream

Method outputToStream

valdi_core/src/valdi_core/cpp/Utils/ReferenceInfo.cpp:128–201  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

126}
127
128void ReferenceInfo::outputToStream(std::ostream& os) const {
129 auto it = rbegin();
130 auto end = rend();
131
132 if (it == end) {
133 os << "<unknown>";
134 return;
135 }
136
137 bool previousIsPropertyLike = false;
138 bool hasPrevious = false;
139 while (it != end) {
140 const auto& component = *it;
141
142 switch (component.type) {
143 case Component::Type::Unknown:
144 os << "<unknown>";
145 previousIsPropertyLike = false;
146 break;
147 case Component::Type::Property:
148 if (previousIsPropertyLike) {
149 os << ".";
150 }
151
152 if (component.hasAssignedName) {
153 os << getNameForComponent(component);
154 } else {
155 if (component.isFunction) {
156 os << "<unknown_function>";
157 } else {
158 os << "<unknown_property>";
159 }
160 }
161 previousIsPropertyLike = true;
162
163 break;
164 case Component::Type::ReturnValue:
165 if (hasPrevious) {
166 os << " -> ";
167 }
168
169 os << "<return_value>";
170 previousIsPropertyLike = true;
171 break;
172 case Component::Type::ParameterValue:
173 if (hasPrevious) {
174 os << " -> ";
175 }
176
177 os << "<parameter " << static_cast<size_t>(component.index);
178 os << ">";
179 previousIsPropertyLike = true;
180 break;
181 case Component::Type::ArrayItem:
182 if (!hasPrevious) {
183 os << "<array>";
184 }
185

Callers 3

ReferenceInfo.cppFile · 0.80
toStringMethod · 0.80
ValueSchema.cppFile · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected