bump flowbite-svelte, pull in icons - fixes red bubble Indicator (#598) #1279
lint.yaml
on: push
Frontend
40s
Backend Formatting
12s
Backend Linter
1m 39s
Annotations
81 warnings
Backend Formatting
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Backend Formatting
The following actions use a deprecated Node.js version and will be forced to run on node20: actions-rs/toolchain@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|
Backend Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Backend Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Backend Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
Backend Formatting
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
|
useless use of `format!`:
src/main.rs#L45
warning: useless use of `format!`
--> src/main.rs:45:25
|
45 | let mut dialog_text = format!("Unrecoverable crash occurred!");
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: consider using `.to_string()`: `"Unrecoverable crash occurred!".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.64.0`:
/home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/tokio-1.40.0/src/macros/select.rs#L505
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.64.0`
--> src/util/process.rs:61:5
|
61 | / tokio::select! {
62 | | Ok(Some(line)) = stdout_reader.next_line() => {
63 | | let formatted_line = format!("{line}\n");
64 | | log_file.write_all(formatted_line.as_bytes()).await?;
... |
93 | | }
94 | | }
| |_____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: this warning originates in the macro `$crate::select` which comes from the expansion of the macro `tokio::select` (in Nightly builds, run with -Z macro-backtrace for more info)
|
unneeded `return` statement:
src/util/process.rs#L96
warning: unneeded `return` statement
--> src/util/process.rs:96:3
|
96 | return Ok(process_status);
| ^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
96 - return Ok(process_status);
96 + Ok(process_status)
|
|
unneeded `return` statement:
src/util/os.rs#L17
warning: unneeded `return` statement
--> src/util/os.rs:17:3
|
17 | return None;
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
17 - return None;
17 + None
|
|
unneeded `return` statement:
src/util/game_milestones.rs#L19
warning: unneeded `return` statement
--> src/util/game_milestones.rs:19:3
|
19 | / return vec![
20 | | MilestoneCriteria {
21 | | name: "geyser".to_string(),
22 | | completed: vec![],
... |
227 | | },
228 | | ];
| |___^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
19 ~ vec![
20 + MilestoneCriteria {
21 + name: "geyser".to_string(),
22 + completed: vec![],
23 + introduced: vec![],
24 + },
25 + MilestoneCriteria {
26 + // (village1-yakow 10)
27 + // (village1-mayor-money 11)
28 + // (village1-uncle-money 12)
29 + // (village1-oracle-money1 13)
30 + // (village1-oracle-money2 14)
31 + // (beach-ecorocks 15)
32 + // (village1-buzzer 75)
33 + name: "sandover".to_string(),
34 + completed: vec![10, 11, 12, 13, 14, 75],
35 + introduced: vec![15],
36 + },
37 + MilestoneCriteria {
38 + // (beach-ecorocks 15)
39 + // (beach-pelican 16)
40 + // (beach-flutflut 17)
41 + // (beach-seagull 18)
42 + // (beach-cannon 19)
43 + // (beach-buzzer 20)
44 + // (beach-gimmie 21)
45 + // (beach-sentinel 22)
46 + name: "sentinel".to_string(),
47 + completed: vec![15, 16, 17, 18, 19, 20, 21, 22],
48 + introduced: vec![],
49 + },
50 + MilestoneCriteria {
51 + // (jungle-eggtop 2)
52 + // (jungle-lurkerm 3)
53 + // (jungle-tower 4)
54 + // (jungle-fishgame 5)
55 + // (jungle-plant 6)
56 + // (jungle-buzzer 7)
57 + // (jungle-canyon-end 8)
58 + // (jungle-temple-door 9)
59 + name: "jungle".to_string(),
60 + completed: vec![2, 3, 4, 5, 6, 7, 8, 9],
61 + introduced: vec![],
62 + },
63 + MilestoneCriteria {
64 + // (misty-muse 23)
65 + // (misty-boat 24)
66 + // (misty-warehouse 25)
67 + // (misty-cannon 26)
68 + // (misty-bike 27)
69 + // (misty-buzzer 28)
70 + // (misty-bike-jump 29)
71 + // (misty-eco-challenge 30)
72 + // (leaving-misty 114)
73 + name: "misty".to_string(),
74 + completed: vec![23, 24, 25, 26, 27, 28, 29, 30, 114],
75 + introduced: vec![],
76 + },
77 + MilestoneCriteria {
78 + // (firecanyon-buzzer 68)
79 + // (firecanyon-end 69)
80 + // (firecanyon-assistant 102)
81 + name: "firecanyon".to_string(),
82 + completed: vec![68, 69],
83 + introduced: vec![102],
84 + },
85 + MilestoneCriteria {
86 + // (village2-gambler-money 31)
87 + // (village2-geologist-money 32)
88 + // (village2-warrior-money 33)
89 + // (village2-oracle-money1 34)
90 + // (village2-oracle-money2 35)
91 + // (firecanyon-buzzer 68)
92 + // (firecanyon-end 69)
93 + // (village2-buzzer 76)
94 + // (firecanyon-assistant 102)
95 + name: "village2".to_string(),
96 + completed: vec![31, 32, 33, 34, 35, 68, 69],
97 + introduced: vec![76, 102],
98 + },
99 + MilestoneCriteria {
100 + // (rolling-race 52)
101 + // (rolling-robbers 53)
102 + // (rolling-moles 54)
103 + // (rolling-plants 55)
104 + // (rolling-lake 56)
105 + // (rolling-buzzer 57)
106 + // (rolling-ring-chase-1 58)
107 + // (rolling-ring-chase-2 59)
108 + name: "basin".to_string(),
109 + completed: vec![52, 53, 54, 55, 56, 57, 58, 59],
110 + introduced: vec![],
111 + },
112 + MilestoneCriteria {
113 + // (swamp-billy 36)
114 + // (swamp-flutflut 37)
115 + // (swamp-battle 38)
116 + // (swamp-tether-1 39)
117 + // (swamp-tether-2 40)
118 + // (swamp-tether-3 41)
119 + // (swamp-tether-4 42)
120 + // (swamp-buzzer 43)
121 + // (swamp-arm 104)
122 + name: "swamp".to_string(),
123 + completed: vec![36, 37, 38, 39, 40, 41, 42, 43, 104],
124 + introduced: vec![],
125 + },
126 + MilestoneCriteria {
127 + // (sunken-platforms 44)
128 + // (sunken-pipe 45)
129 + // (sunken-slide 46)
130 + // (sunken-room 47)
131 + // (sunken-sharks 48)
132 + // (sunken-buzzer 49)
133 + // (sunken-top-of-helix 50)
134 + // (sunken-spinning-room 51)
135 + name: "lpc".to_string(),
136 + completed: vec![44, 45, 46, 47, 48, 49, 50, 51],
137 + introduced: vec![],
138 + },
139 + MilestoneCriteria {
140 + // (ogre-boss 86)
141 + // (village2-levitator 103)
142 + name: "klaww".to_string(),
143 + completed: vec![103],
144 + introduced: vec![86],
145 + },
146 + MilestoneCriteria {
147 + // (ogre-boss 86)
148 + // (ogre-end 87)
149 + // (ogre-buzzer 88)
150 + // (ogre-secret 110)
151 + name: "mountainpass".to_string(),
152 + completed: vec![86, 88, 110],
153 + introduced: vec![87],
154 + },
155 + MilestoneCriteria {
156 + // (village3-extra1 74)
157 + // (village3-buzzer 77)
158 + // (village3-miner-money1 96)
159 + // (village3-miner-money2 97)
160 + // (village3-miner-money3 98)
161 + // (village3-miner-money4 99)
162 + // (village3-oracle-money1 100)
163 + // (village3-oracle-money2 101)
164 + // (village3-button 105)
165 + name: "village3".to_string(),
166 + completed: vec![74, 77, 96, 97, 98, 99, 100, 101, 105],
167 + introduced: vec![],
168 + },
169 + MilestoneCriteria {
170 + // (cave-gnawers 78)
171 + // (cave-dark-crystals 79)
172 + // (cave-dark-climb 80)
173 + // (cave-robot-climb 81)
174 + // (cave-swing-poles 82)
175 + // (cave-spider-tunnel 83)
176 + // (cave-platforms 84)
177 + // (cave-buzzer 85)
178 + name: "cave".to_string(),
179 + completed: vec![78, 79, 80, 81, 82, 83, 84, 85],
180 + introduced: vec![],
181 + },
182 + MilestoneCriteria {
183 + // (snow-eggtop 60)
184 + // (snow-ram 61)
185 + // (snow-fort 62)
186 + // (snow-ball 63)
187 + // (snow-bunnies 64)
188 + // (snow-buzzer 65)
189 + // (snow-bumpers 66)
190 + // (snow-cage 67)
191 + name: "snowy".to_string(),
192 + completed: vec![60, 61, 62, 63, 64, 65, 66, 67],
193 + introduced: vec![],
194 + },
195 + MilestoneCriteria {
196 + // (lavatube-end 89)
197 + // (lavatube-buzzer 90)
198 + // (lavatube-balls 107)
199 + // (lavatube-start 108)
200 + // (assistant-village3 115)
201 + name: "lavatube".to_string(),
202 + completed: vec![90, 107, 108, 115],
203 + introduced: vec![89],
204 + },
205 + MilestoneCriteria {
206 + // (citadel-sage-green 70)
207 + // (citadel-sage-blue 71)
208 + // (citadel-sage-red 72)
209 + // (citadel-sage-yellow 73)
210 + // (lavatube-end 89)
211 + // (citadel-buzzer 91)
212 + name: "citadel".to_string(),
213 + completed: vec![71, 72, 73, 89, 91],
214 + introduced: vec![70],
215 + },
216 + MilestoneCriteria {
217 + // (citadel-sage-green 70)
218 + name: "finalboss".to_string(),
219 + completed: vec![70],
220 + introduced: vec![],
221 + },
222 + MilestoneCriteria {
223 + // (finalboss-movies 112)
224 + name: "end".to_string(),
225 + completed: vec![],
226 + introduced: vec![112],
227 + },
228 ~ ]
|
|
unneeded `return` statement:
src/util/file.rs#L78
warning: unneeded `return` statement
--> src/util/file.rs:78:3
|
78 | / return format!(
79 | | "data:image/{};base64,{}",
80 | | get_image_file_type(&hex),
81 | | base64.replace("\r\n", "")
82 | | );
| |___^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
78 ~ format!(
79 + "data:image/{};base64,{}",
80 + get_image_file_type(&hex),
81 + base64.replace("\r\n", "")
82 ~ )
|
|
file opened with `create`, but `truncate` behavior not defined:
src/util/file.rs#L52
warning: file opened with `create`, but `truncate` behavior not defined
--> src/util/file.rs:52:6
|
52 | .create(true)
| ^^^^^^^^^^^^- help: add: `.truncate(true)`
|
= help: if you intend to overwrite an existing file entirely, call `.truncate(true)`
= help: if you instead know that you may want to keep some parts of the old file, call `.truncate(false)`
= help: alternatively, use `.append(true)` to append to the file instead of overwriting it
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#suspicious_open_options
= note: `#[warn(clippy::suspicious_open_options)]` on by default
|
casting to the same type is unnecessary (`usize` -> `usize`):
src/config.rs#L679
warning: casting to the same type is unnecessary (`usize` -> `usize`)
--> src/config.rs:679:10
|
679 | if (mod_source_index as usize) < sources.len() {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `mod_source_index`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
= note: `#[warn(clippy::unnecessary_cast)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/config.rs#L656
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/config.rs:656:58
|
656 | let game_config = self.get_supported_game_config_mut(&game_name)?;
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`:
src/config.rs#L318
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`
--> src/config.rs:318:18
|
318 | .is_some_and(|x| x != "official")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
|
current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`:
src/config.rs#L306
warning: current MSRV (Minimum Supported Rust Version) is `1.61.0` but this item is stable since `1.70.0`
--> src/config.rs:306:16
|
306 | .is_some_and(|x| x != "official")
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#incompatible_msrv
= note: `#[warn(clippy::incompatible_msrv)]` on by default
|
unneeded `return` statement:
src/config.rs#L267
warning: unneeded `return` statement
--> src/config.rs:267:9
|
267 | / return Err(ConfigError::Configuration(format!(
268 | | "Supported game missing from games map: {game_name}"
269 | | )));
| |___________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
267 ~ Err(ConfigError::Configuration(format!(
268 + "Supported game missing from games map: {game_name}"
269 ~ )))
|
|
unneeded `return` statement:
src/config.rs#L246
warning: unneeded `return` statement
--> src/config.rs:246:9
|
246 | / return Err(ConfigError::Configuration(format!(
247 | | "Supported game missing from games map: {game_name}"
248 | | )));
| |___________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
246 ~ Err(ConfigError::Configuration(format!(
247 + "Supported game missing from games map: {game_name}"
248 ~ )))
|
|
the borrowed expression implements the required traits:
src/commands/support.rs#L460
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:460:14
|
460 | fs::rename(&save_file.path(), save_path).map_err(|_| {
| ^^^^^^^^^^^^^^^^^ help: change this to: `save_file.path()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/support.rs#L232
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/support.rs:232:19
|
232 | &mod_path,
| ^^^^^^^^^ help: change this to: `mod_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/support.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/support.rs:220:19
|
220 | &mod_path,
| ^^^^^^^^^ help: change this to: `mod_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
the borrowed expression implements the required traits:
src/commands/support.rs#L197
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:197:58
|
197 | let mod_directory = install_path.join("features").join(&game_name).join("mods");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L166
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:166:44
|
166 | let data_dir = active_version_dir.join(&game_name).join("data");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L154
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:154:11
|
154 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L151
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:151:11
|
151 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L145
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:145:11
|
145 | .join(&game_name)
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L135
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:135:46
|
135 | let jak1_log_dir = active_version_dir.join(&game_name).join("data").join("log");
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L125
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:125:27
|
125 | &game_config_dir.join(&game_name).join("saves"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L116
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:116:27
|
116 | &game_config_dir.join(&game_name).join("misc"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/support.rs#L107
warning: the borrowed expression implements the required traits
--> src/commands/support.rs:107:27
|
107 | &game_config_dir.join(&game_name).join("settings"),
| ^^^^^^^^^^ help: change this to: `game_name`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`:
src/commands/game.rs#L221
warning: you seem to be trying to use `match` for destructuring a single pattern. Consider using `if let`
--> src/commands/game.rs:221:9
|
221 | / match get_saves_highest_milestone(&entry.into_path(), &milestones) {
222 | | Some((name, idx)) => {
223 | | info!("Furthest milestone {} at index {}", name, idx);
224 | | if idx > highest_milestone_idx {
... |
229 | | None => {}
230 | | }
| |_________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#single_match
= note: `#[warn(clippy::single_match)]` on by default
help: try
|
221 ~ if let Some((name, idx)) = get_saves_highest_milestone(&entry.into_path(), &milestones) {
222 + info!("Furthest milestone {} at index {}", name, idx);
223 + if idx > highest_milestone_idx {
224 + highest_milestone_idx = idx;
225 + furthest_milestone_name = name.to_owned();
226 + }
227 + }
|
|
unneeded `return` statement:
src/commands/game.rs#L235
warning: unneeded `return` statement
--> src/commands/game.rs:235:3
|
235 | return Ok(furthest_milestone_name);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
235 - return Ok(furthest_milestone_name);
235 + Ok(furthest_milestone_name)
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L157
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:157:48
|
157 | if tasks.contains_key(&task_id) && tasks[&task_id].completed {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L157
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:157:29
|
157 | if tasks.contains_key(&task_id) && tasks[&task_id].completed {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L152
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:152:48
|
152 | if tasks.contains_key(&task_id) && tasks[&task_id].introduced {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/game.rs#L152
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/game.rs:152:29
|
152 | if tasks.contains_key(&task_id) && tasks[&task_id].introduced {
| ^^^^^^^^ help: change this to: `task_id`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
writing `&Vec` instead of `&[_]` involves a new object where a slice will do:
src/commands/game.rs#L111
warning: writing `&Vec` instead of `&[_]` involves a new object where a slice will do
--> src/commands/game.rs:111:15
|
111 | milestones: &Vec<MilestoneCriteria>,
| ^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `&[MilestoneCriteria]`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#ptr_arg
= note: `#[warn(clippy::ptr_arg)]` on by default
|
unneeded `return` statement:
src/commands/game.rs#L163
warning: unneeded `return` statement
--> src/commands/game.rs:163:3
|
163 | return None;
| ^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
163 - return None;
163 + None
|
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L317
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:317:22
|
317 | match delete_dir(&texture_pack_dir.join(&pack)) {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: change this to: `texture_pack_dir.join(&pack)`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L270
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:270:13
|
270 | .join(&pack)
| ^^^^^ help: change this to: `pack`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/texture_packs.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/texture_packs.rs:220:35
|
220 | extract_zip_file(&zip_path_buf, &destination_dir, false).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
the borrowed expression implements the required traits:
src/commands/features/texture_packs.rs#L94
warning: the borrowed expression implements the required traits
--> src/commands/features/texture_packs.rs:94:17
|
94 | / &entry_path
95 | | .join("custom_assets")
96 | | .join(&game_name)
97 | | .join("texture_replacements"),
| |_______________________________________________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
help: change this to
|
94 ~ entry_path
95 + .join("custom_assets")
96 + .join(&game_name)
97 ~ .join("texture_replacements"),
|
|
unnecessary use of `to_string`:
src/commands/features/mods.rs#L761
warning: unnecessary use of `to_string`
--> src/commands/features/mods.rs:761:31
|
761 | return Ok(to_image_base64(&cover_path.to_string_lossy().to_string()));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `cover_path.to_string_lossy().as_ref()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
|
unnecessary use of `to_string`:
src/commands/features/mods.rs#L736
warning: unnecessary use of `to_string`
--> src/commands/features/mods.rs:736:31
|
736 | return Ok(to_image_base64(&cover_path.to_string_lossy().to_string()));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: use: `cover_path.to_string_lossy().as_ref()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_to_owned
= note: `#[warn(clippy::unnecessary_to_owned)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L174
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:174:49
|
174 | extract_and_delete_tar_ball(&download_path, &parent_path).map_err(|err| {
| ^^^^^^^^^^^^ help: change this to: `parent_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L174
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:174:33
|
174 | extract_and_delete_tar_ball(&download_path, &parent_path).map_err(|err| {
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L169
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:169:49
|
169 | extract_and_delete_zip_file(&download_path, &parent_path, false).map_err(|err| {
| ^^^^^^^^^^^^ help: change this to: `parent_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L169
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:169:33
|
169 | extract_and_delete_zip_file(&download_path, &parent_path, false).map_err(|err| {
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L154
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:154:32
|
154 | download_file(&download_url, &download_path)
| ^^^^^^^^^^^^^^ help: change this to: `download_path`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/features/mods.rs#L184
warning: unneeded `return` statement
--> src/commands/features/mods.rs:184:3
|
184 | / return Ok(InstallStepOutput {
185 | | success: true,
186 | | msg: None,
187 | | });
| |____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
184 ~ Ok(InstallStepOutput {
185 + success: true,
186 + msg: None,
187 ~ })
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L107
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:107:40
|
107 | extract_tar_ball(&bundle_path_buf, &destination_dir).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/features/mods.rs#L102
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/features/mods.rs:102:40
|
102 | extract_zip_file(&bundle_path_buf, &destination_dir, false).map_err(|err| {
| ^^^^^^^^^^^^^^^^ help: change this to: `destination_dir`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L512
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:512:80
|
512 | let tooling_version = Version::parse(version.strip_prefix('v').unwrap_or(&version))
| ^^^^^^^^ help: change this to: `version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L471
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:471:80
|
471 | let tooling_version = Version::parse(version.strip_prefix('v').unwrap_or(&version))
| ^^^^^^^^ help: change this to: `version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/config.rs#L298
warning: unneeded `return` statement
--> src/commands/config.rs:298:3
|
298 | return is_game_installed_impl(&mut config_lock, game_name);
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
298 - return is_game_installed_impl(&mut config_lock, game_name);
298 + is_game_installed_impl(&mut config_lock, game_name)
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/config.rs#L220
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/config.rs:220:83
|
220 | let tooling_version = Version::parse(active_version.strip_prefix('v').unwrap_or(&active_version))
| ^^^^^^^^^^^^^^^ help: change this to: `active_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/config.rs#L138
warning: unneeded `return` statement
--> src/commands/config.rs:138:3
|
138 | return Ok(false);
| ^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
138 - return Ok(false);
138 + Ok(false)
|
|
unneeded `return` statement:
src/commands/config.rs#L112
warning: unneeded `return` statement
--> src/commands/config.rs:112:3
|
112 | / return Err(CommandError::Configuration(
113 | | "Unable to find relevant drive to check for space".to_owned(),
114 | | ));
| |____^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
112 ~ Err(CommandError::Configuration(
113 + "Unable to find relevant drive to check for space".to_owned(),
114 ~ ))
|
|
the borrowed expression implements the required traits:
src/commands/config.rs#L23
warning: the borrowed expression implements the required traits
--> src/commands/config.rs:23:32
|
23 | Some(dir) => Ok(delete_dir(&dir.join("data"))?),
| ^^^^^^^^^^^^^^^^^ help: change this to: `dir.join("data")`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrows_for_generic_args
= note: `#[warn(clippy::needless_borrows_for_generic_args)]` on by default
|
unneeded `return` statement:
src/commands/binaries.rs#L879
warning: unneeded `return` statement
--> src/commands/binaries.rs:879:68
|
879 | log::error!("Error occured when tracking playtime: {}", err);
| ____________________________________________________________________^
880 | | return;
| |____________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
879 - log::error!("Error occured when tracking playtime: {}", err);
880 - return;
879 + log::error!("Error occured when tracking playtime: {}", err);
|
|
this boolean expression can be simplified:
src/commands/binaries.rs#L862
warning: this boolean expression can be simplified
--> src/commands/binaries.rs:862:12
|
862 | if !status_code.code().is_some() || status_code.code().unwrap() != 0 {
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `status_code.code().is_none()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool
= note: `#[warn(clippy::nonminimal_bool)]` on by default
|
useless use of `format!`:
src/commands/binaries.rs#L813
warning: useless use of `format!`
--> src/commands/binaries.rs:813:52
|
813 | return Err(CommandError::BinaryExecution(format!(
| ____________________________________________________^
814 | | "Failed to resolve custom binary parent directory"
815 | | )));
| |___________^ help: consider using `.to_string()`: `"Failed to resolve custom binary parent directory".to_string()`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#useless_format
= note: `#[warn(clippy::useless_format)]` on by default
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/binaries.rs#L737
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/binaries.rs:737:34
|
737 | let data_folder = get_data_dir(&config_info, &game_name, false)?;
| ^^^^^^^^^^^^ help: change this to: `config_info`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
|
unneeded `return` statement:
src/commands/binaries.rs#L726
warning: unneeded `return` statement
--> src/commands/binaries.rs:726:7
|
726 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
726 - return Ok(None);
726 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L722
warning: unneeded `return` statement
--> src/commands/binaries.rs:722:9
|
722 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
722 - return Ok(None);
722 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L718
warning: unneeded `return` statement
--> src/commands/binaries.rs:718:13
|
718 | return Ok(None);
| ^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
718 - return Ok(None);
718 + Ok(None)
|
|
unneeded `return` statement:
src/commands/binaries.rs#L714
warning: unneeded `return` statement
--> src/commands/binaries.rs:714:13
|
714 | return Ok(Some(test_results.success));
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
help: remove `return`
|
714 - return Ok(Some(test_results.success));
714 + Ok(Some(test_results.success))
|
|
unneeded `return` statement:
src/commands/binaries.rs#L644
warning: unneeded `return` statement
--> src/commands/binaries.rs:644:7
|
644 | / return Err(CommandError::BinaryExecution(
645 | | "Unable to launch REPL".to_owned(),
646 | | ));
| |________^
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return
= note: `#[warn(clippy::needless_return)]` on by default
help: remove `return`
|
644 ~ Err(CommandError::BinaryExecution(
645 + "Unable to launch REPL".to_owned(),
646 ~ ))
|
|
this expression creates a reference which is immediately dereferenced by the compiler:
src/commands/binaries.rs#L77
warning: this expression creates a reference which is immediately dereferenced by the compiler
--> src/commands/binaries.rs:77:83
|
77 | let tooling_version = Version::parse(active_version.strip_prefix('v').unwrap_or(&active_version))
| ^^^^^^^^^^^^^^^ help: change this to: `active_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow
= note: `#[warn(clippy::needless_borrow)]` on by default
|
variant `ModSource` is never constructed:
src/cache.rs#L12
warning: variant `ModSource` is never constructed
--> src/cache.rs:12:3
|
10 | pub enum CacheError {
| ---------- variant in this enum
11 | #[error("{0}")]
12 | ModSource(String),
| ^^^^^^^^^
|
= note: `CacheError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
= note: `#[warn(dead_code)]` on by default
|
variable does not need to be mutable:
src/commands/features/mods.rs#L712
warning: variable does not need to be mutable
--> src/commands/features/mods.rs:712:7
|
712 | let mut child = command.spawn()?;
| ----^^^^^
| |
| help: remove this `mut`
|
= note: `#[warn(unused_mut)]` on by default
|
unused variable: `child`:
src/commands/features/mods.rs#L712
warning: unused variable: `child`
--> src/commands/features/mods.rs:712:11
|
712 | let mut child = command.spawn()?;
| ^^^^^ help: if this is intentional, prefix it with an underscore: `_child`
|
= note: `#[warn(unused_variables)]` on by default
|
value assigned to `process_status` is never read:
src/util/process.rs#L58
warning: value assigned to `process_status` is never read
--> src/util/process.rs:58:11
|
58 | let mut process_status = None;
| ^^^^^^^^^^^^^^
|
= help: maybe it is overwritten before being read?
= note: `#[warn(unused_assignments)]` on by default
|
unused import: `BufRead`:
src/util/file.rs#L9
warning: unused import: `BufRead`
--> src/util/file.rs:9:8
|
9 | io::{BufRead, Read},
| ^^^^^^^
|
unused import: `FromBase64`:
src/util/file.rs#L5
warning: unused import: `FromBase64`
--> src/util/file.rs:5:31
|
5 | use rustc_serialize::base64::{FromBase64, ToBase64, MIME};
| ^^^^^^^^^^
|
unused import: `tauri::Manager`:
src/commands/util.rs#L2
warning: unused import: `tauri::Manager`
--> src/commands/util.rs:2:5
|
2 | use tauri::Manager;
| ^^^^^^^^^^^^^^
|
unused import: `crate::util::os::get_installed_vcc_runtime`:
src/commands/config.rs#L3
warning: unused import: `crate::util::os::get_installed_vcc_runtime`
--> src/commands/config.rs:3:5
|
3 | use crate::util::os::get_installed_vcc_runtime;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
= note: `#[warn(unused_imports)]` on by default
|
redundant field names in struct initialization:
src/commands/binaries.rs#L84
warning: redundant field names in struct initialization
--> src/commands/binaries.rs:84:5
|
84 | tooling_version: tooling_version,
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: replace it with: `tooling_version`
|
= help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_field_names
= note: `#[warn(clippy::redundant_field_names)]` on by default
|
Backend Linter
The following actions uses node12 which is deprecated and will be forced to run on node16: actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
|
Backend Linter
The following actions use a deprecated Node.js version and will be forced to run on node20: actions-rs/clippy-check@v1. For more info: https://github.blog/changelog/2024-03-07-github-actions-all-actions-will-run-on-node20-instead-of-node16-by-default/
|