git.delta.rocks / jrsonnet / refs/commits / 0868231da18c

difftreelog

fix empty line outputed with empty trace

Yaroslav Bolyukin2021-03-27parent: #90d4f17.patch.diff
in: master

1 file changed

modifiedcrates/jrsonnet-evaluator/src/trace/mod.rsdiffbeforeafterboth
86 evaluation_state: &EvaluationState,86 evaluation_state: &EvaluationState,
87 error: &LocError,87 error: &LocError,
88 ) -> Result<(), std::fmt::Error> {88 ) -> Result<(), std::fmt::Error> {
89 writeln!(out, "{}", error.error())?;89 write!(out, "{}", error.error())?;
90 if let Error::ImportSyntaxError {90 if let Error::ImportSyntaxError {
91 path,91 path,
92 source_code,92 source_code,
93 error,93 error,
94 } = error.error()94 } = error.error()
95 {95 {
96 writeln!(out)?;
96 use std::fmt::Write;97 use std::fmt::Write;
97 let mut n = self.resolver.resolve(path);98 let mut n = self.resolver.resolve(path);
98 let mut offset = error.location.offset;99 let mut offset = error.location.offset;
136 .map(|e| e.len())137 .map(|e| e.len())
137 .max()138 .max()
138 .unwrap_or(0);139 .unwrap_or(0);
139 for (i, (el, file)) in error.trace().0.iter().zip(file_names).enumerate() {140 for (el, file) in error.trace().0.iter().zip(file_names) {
140 if i != 0 {
141 writeln!(out)?;141 writeln!(out)?;
142 }
143 write!(142 write!(
144 out,143 out,
145 "{:<p$}{:<w$}: {}",144 "{:<p$}{:<w$}: {}",
162 evaluation_state: &EvaluationState,161 evaluation_state: &EvaluationState,
163 error: &LocError,162 error: &LocError,
164 ) -> Result<(), std::fmt::Error> {163 ) -> Result<(), std::fmt::Error> {
165 writeln!(out, "{}", error.error())?;164 write!(out, "{}", error.error())?;
166 for (i, item) in error.trace().0.iter().enumerate() {165 for item in error.trace().0.iter() {
167 if i != 0 {
168 writeln!(out)?;166 writeln!(out)?;
169 }
170 let desc = &item.desc;167 let desc = &item.desc;
171 if let Some(source) = &item.location {168 if let Some(source) = &item.location {
172 let start_end =169 let start_end =
201 evaluation_state: &EvaluationState,198 evaluation_state: &EvaluationState,
202 error: &LocError,199 error: &LocError,
203 ) -> Result<(), std::fmt::Error> {200 ) -> Result<(), std::fmt::Error> {
204 writeln!(out, "{}", error.error())?;201 write!(out, "{}", error.error())?;
205 if let Error::ImportSyntaxError {202 if let Error::ImportSyntaxError {
206 path,203 path,
207 source_code,204 source_code,
208 error,205 error,
209 } = error.error()206 } = error.error()
210 {207 {
208 writeln!(out)?;
211 let mut offset = error.location.offset;209 let mut offset = error.location.offset;
212 if offset >= source_code.len() {210 if offset >= source_code.len() {
213 offset = source_code.len() - 1;211 offset = source_code.len() - 1;
231 }229 }
232 let trace = &error.trace();230 let trace = &error.trace();
233 for item in trace.0.iter() {231 for item in trace.0.iter() {
232 writeln!(out)?;
234 let desc = &item.desc;233 let desc = &item.desc;
235 if let Some(source) = &item.location {234 if let Some(source) = &item.location {
236 let start_end =235 let start_end =
297 };296 };
298297
299 let dl = DisplayList::from(snippet);298 let dl = DisplayList::from(snippet);
300 writeln!(out, "{}", dl)?;299 write!(out, "{}", dl)?;
301300
302 Ok(())301 Ok(())
303 }302 }