Skip to content

Commit 946cc20

Browse files
committed
fix: clippy and zig output
1 parent 92b34c0 commit 946cc20

File tree

4 files changed

+34
-9
lines changed

4 files changed

+34
-9
lines changed

src/app.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -244,8 +244,7 @@ fn install_package(language: &LanguageSpec, package: &str) -> Result<i32> {
244244
Ok(1)
245245
}
246246
Err(err) => {
247-
return Err(err)
248-
.with_context(|| format!("failed to run package manager for {lang_id}"));
247+
Err(err).with_context(|| format!("failed to run package manager for {lang_id}"))
249248
}
250249
}
251250
}

src/cli.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ pub fn parse() -> Result<Command> {
203203
_ => {
204204
let mut all_tokens = Vec::with_capacity(trailing.len() + 1);
205205
all_tokens.push(first);
206-
all_tokens.extend(trailing.drain(..));
206+
all_tokens.append(&mut trailing);
207207
let (code_tokens, extra_args) = split_at_double_dash(&all_tokens);
208208
let joined = join_tokens(&code_tokens);
209209
source = Some(InputSource::Inline(joined));

src/engine/zig.rs

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,11 +128,24 @@ impl LanguageEngine for ZigEngine {
128128
let src_hash = hash_source(&snippet);
129129
if let Some(output) = try_cached_execution(src_hash) {
130130
let start = Instant::now();
131+
let mut stdout = String::from_utf8_lossy(&output.stdout).into_owned();
132+
let stderr = String::from_utf8_lossy(&output.stderr).into_owned();
133+
if output.status.success() && !stderr.contains("error:") {
134+
if stdout.is_empty() {
135+
stdout = stderr.clone();
136+
} else if !stderr.is_empty() {
137+
stdout.push_str(&stderr);
138+
}
139+
}
131140
return Ok(ExecutionOutcome {
132141
language: self.id().to_string(),
133142
exit_code: output.status.code(),
134-
stdout: String::from_utf8_lossy(&output.stdout).into_owned(),
135-
stderr: String::from_utf8_lossy(&output.stderr).into_owned(),
143+
stdout,
144+
stderr: if output.status.success() && !stderr.contains("error:") {
145+
String::new()
146+
} else {
147+
stderr
148+
},
136149
duration: start.elapsed(),
137150
});
138151
}
@@ -184,11 +197,24 @@ impl LanguageEngine for ZigEngine {
184197
.stdin(Stdio::inherit());
185198
if let Ok(output) = run_cmd.output() {
186199
drop(temp_dir);
200+
let mut stdout = String::from_utf8_lossy(&output.stdout).into_owned();
201+
let stderr = String::from_utf8_lossy(&output.stderr).into_owned();
202+
if output.status.success() && !stderr.contains("error:") {
203+
if stdout.is_empty() {
204+
stdout = stderr.clone();
205+
} else if !stderr.is_empty() {
206+
stdout.push_str(&stderr);
207+
}
208+
}
187209
return Ok(ExecutionOutcome {
188210
language: self.id().to_string(),
189211
exit_code: output.status.code(),
190-
stdout: String::from_utf8_lossy(&output.stdout).into_owned(),
191-
stderr: String::from_utf8_lossy(&output.stderr).into_owned(),
212+
stdout,
213+
stderr: if output.status.success() && !stderr.contains("error:") {
214+
String::new()
215+
} else {
216+
stderr
217+
},
192218
duration: start.elapsed(),
193219
});
194220
}

src/repl.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -984,8 +984,8 @@ fn python_dedent_one_level(indent: &str) -> String {
984984
if indent.is_empty() {
985985
return String::new();
986986
}
987-
if indent.ends_with('\t') {
988-
return indent[..indent.len() - 1].to_string();
987+
if let Some(stripped) = indent.strip_suffix('\t') {
988+
return stripped.to_string();
989989
}
990990
let mut trimmed = indent.to_string();
991991
let mut removed = 0usize;

0 commit comments

Comments
 (0)