MCPcopy Create free account
hub / github.com/FuzzAnything/PromptFuzz / get_source_range

Method get_source_range

src/ast/helper.rs:145–181  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

143 }
144
145 fn get_source_range(&self) -> eyre::Result<(usize, usize)> {
146 match &self.kind {
147 Clang::ImplicitCastExpr(ce) => get_source_code_range(&ce.range),
148 Clang::CStyleCastExpr(ce) => get_source_code_range(&ce.range),
149 Clang::StringLiteral(sl) => get_source_code_range(&sl.range),
150 Clang::IntegerLiteral(il) => get_source_code_range(&il.range),
151 Clang::CharacterLiteral(cl) => get_source_code_range(&cl.range),
152 Clang::FloatingLiteral(fl) => get_source_code_range(&fl.range),
153 Clang::IfStmt(is) => get_source_code_range(&is.range),
154 Clang::DeclStmt(ds) => get_source_code_range(&ds.range),
155 Clang::BinaryOperator(bo) => get_source_code_range(&bo.range),
156 Clang::UnaryOperator(uo) => get_source_code_range(&uo.range),
157 Clang::ReturnStmt(rs) => get_source_code_range(&rs.range),
158 Clang::CallExpr(ce) => get_source_code_range(&ce.range),
159 Clang::UnaryExprOrTypeTraitExpr(ue) => get_source_code_range(&ue.range),
160 Clang::CXXStaticCastExpr(cce) => get_source_code_range(&cce.range),
161 Clang::ParenExpr(pe) => get_source_code_range(&pe.range),
162 Clang::Other => {
163 if let Some(first) = self.inner.first() {
164 let start = first.get_source_range()?.0;
165 let end = self.inner.last().unwrap().get_source_range()?.1;
166 Ok((start, end))
167 } else {
168 eyre::bail!("Other node has no children: {self:#?}")
169 }
170 },
171 _ => {
172 if let Some(first) = self.inner.first() {
173 let start = first.get_source_range()?.0;
174 let end = self.inner.last().unwrap().get_source_range()?.1;
175 Ok((start, end))
176 } else {
177 eyre::bail!("Other node has no children: {self:#?}")
178 }
179 }
180 }
181 }
182
183 fn dump(&self) -> String {
184 let dump_str = match &self.kind {

Callers 1

change_call_argMethod · 0.80

Calls 1

get_source_code_rangeFunction · 0.85

Tested by

no test coverage detected