mirror of
https://github.com/zed-industries/zed.git
synced 2026-06-01 03:14:56 +07:00
Rust 1.95 (#55104)
Self-Review Checklist: - [x] I've reviewed my own diff for quality, security, and reliability - [x] Unsafe blocks (if any) have justifying comments - [x] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [x] Tests cover the new/changed behavior - [x] Performance impact has been considered and is acceptable Closes #ISSUE Release Notes: - N/A
This commit is contained in:
parent
2985e058c3
commit
320888142f
35 changed files with 72 additions and 90 deletions
|
|
@ -1 +0,0 @@
|
|||
words = ["breakpoint"]
|
||||
|
|
@ -162,7 +162,7 @@ fn migrate_thread_metadata(cx: &mut App) -> Task<anyhow::Result<()>> {
|
|||
.push(entry);
|
||||
}
|
||||
for entries in per_project.values_mut() {
|
||||
entries.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
|
||||
entries.sort_by_key(|entry| std::cmp::Reverse(entry.updated_at));
|
||||
for entry in entries.iter_mut().take(5) {
|
||||
entry.archived = false;
|
||||
}
|
||||
|
|
@ -2321,7 +2321,7 @@ mod tests {
|
|||
.filter(|m| *m.folder_paths() == project_a_paths)
|
||||
.collect();
|
||||
assert_eq!(project_a_entries.len(), 7);
|
||||
project_a_entries.sort_by(|a, b| b.updated_at.cmp(&a.updated_at));
|
||||
project_a_entries.sort_by_key(|entry| std::cmp::Reverse(entry.updated_at));
|
||||
|
||||
for entry in &project_a_entries[..5] {
|
||||
assert!(
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ impl JsDebugAdapter {
|
|||
if let Some(env) = configuration.get("env").cloned()
|
||||
&& let Ok(env) = serde_json::from_value::<HashMap<String, String>>(env)
|
||||
{
|
||||
envs.extend(env.into_iter());
|
||||
envs.extend(env);
|
||||
}
|
||||
|
||||
configuration
|
||||
|
|
|
|||
|
|
@ -328,7 +328,7 @@ async fn test_escape_code_processing(executor: BackgroundExecutor, cx: &mut Test
|
|||
|
||||
let text_highlights = editor.update(cx, |editor, cx| {
|
||||
let mut text_highlights = editor.all_text_highlights(window, cx).into_iter().flat_map(|(_, ranges)| ranges).collect::<Vec<_>>();
|
||||
text_highlights.sort_by(|a, b| a.start.cmp(&b.start));
|
||||
text_highlights.sort_by_key(|hl| hl.start);
|
||||
text_highlights
|
||||
});
|
||||
pretty_assertions::assert_eq!(
|
||||
|
|
|
|||
|
|
@ -118,12 +118,8 @@ fn run_neural_denoiser(
|
|||
input_rx: mpsc::Receiver<[f32; BLOCK_SHIFT]>,
|
||||
) {
|
||||
let mut engine = Engine::new();
|
||||
loop {
|
||||
let Ok(sub_block) = input_rx.recv() else {
|
||||
// tx must have dropped, stop thread
|
||||
break;
|
||||
};
|
||||
|
||||
// until tx is dropped
|
||||
while let Ok(sub_block) = input_rx.recv() {
|
||||
let denoised_sub_block = engine.feed(&sub_block);
|
||||
if denoised_tx.send(denoised_sub_block).is_err() {
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -542,23 +542,22 @@ impl BufferDiagnosticsEditor {
|
|||
// display map for the new diagnostics. Update the `blocks`
|
||||
// property before finishing, to ensure the blocks are removed
|
||||
// on the next execution.
|
||||
let editor_blocks =
|
||||
anchor_ranges
|
||||
.into_iter()
|
||||
.zip(blocks.into_iter())
|
||||
.map(|(anchor, block)| {
|
||||
let editor = buffer_diagnostics_editor.editor.downgrade();
|
||||
let editor_blocks = anchor_ranges
|
||||
.into_iter()
|
||||
.zip(blocks)
|
||||
.map(|(anchor, block)| {
|
||||
let editor = buffer_diagnostics_editor.editor.downgrade();
|
||||
|
||||
BlockProperties {
|
||||
placement: BlockPlacement::Near(anchor.start),
|
||||
height: Some(1),
|
||||
style: BlockStyle::Flex,
|
||||
render: Arc::new(move |block_context| {
|
||||
block.render_block(editor.clone(), block_context)
|
||||
}),
|
||||
priority: 1,
|
||||
}
|
||||
});
|
||||
BlockProperties {
|
||||
placement: BlockPlacement::Near(anchor.start),
|
||||
height: Some(1),
|
||||
style: BlockStyle::Flex,
|
||||
render: Arc::new(move |block_context| {
|
||||
block.render_block(editor.clone(), block_context)
|
||||
}),
|
||||
priority: 1,
|
||||
}
|
||||
});
|
||||
|
||||
let block_ids = buffer_diagnostics_editor.editor.update(cx, |editor, cx| {
|
||||
editor.display_map.update(cx, |display_map, cx| {
|
||||
|
|
|
|||
|
|
@ -667,10 +667,8 @@ impl ProjectDiagnosticsEditor {
|
|||
}
|
||||
}
|
||||
|
||||
let editor_blocks = anchor_ranges
|
||||
.into_iter()
|
||||
.zip_eq(result_blocks.into_iter())
|
||||
.filter_map(|(anchor, block)| {
|
||||
let editor_blocks = anchor_ranges.into_iter().zip_eq(result_blocks).filter_map(
|
||||
|(anchor, block)| {
|
||||
let block = block?;
|
||||
let editor = this.editor.downgrade();
|
||||
Some(BlockProperties {
|
||||
|
|
@ -680,7 +678,8 @@ impl ProjectDiagnosticsEditor {
|
|||
render: Arc::new(move |bcx| block.render_block(editor.clone(), bcx)),
|
||||
priority: 1,
|
||||
})
|
||||
});
|
||||
},
|
||||
);
|
||||
|
||||
let block_ids = this.editor.update(cx, |editor, cx| {
|
||||
editor.display_map.update(cx, |display_map, cx| {
|
||||
|
|
|
|||
|
|
@ -2514,7 +2514,7 @@ impl EditPredictionStore {
|
|||
.collect()
|
||||
});
|
||||
|
||||
candidates.sort_by(|a, b| b.1.cmp(&a.1));
|
||||
candidates.sort_by_key(|c| std::cmp::Reverse(c.1));
|
||||
|
||||
for (path, _) in candidates {
|
||||
let candidate_buffer = project
|
||||
|
|
|
|||
|
|
@ -3315,8 +3315,7 @@ async fn test_edit_prediction_settled(cx: &mut TestAppContext) {
|
|||
// Let the worker process the channel message before we start advancing.
|
||||
cx.run_until_parked();
|
||||
|
||||
let mut region_a_edit_offset = 5;
|
||||
for _ in 0..3 {
|
||||
for region_a_edit_offset in (5..).take(3) {
|
||||
// Edit inside region A (not at the boundary) so `last_edit_at` is
|
||||
// updated before the worker's next wake.
|
||||
buffer.update(cx, |buffer, cx| {
|
||||
|
|
@ -3326,7 +3325,6 @@ async fn test_edit_prediction_settled(cx: &mut TestAppContext) {
|
|||
cx,
|
||||
);
|
||||
});
|
||||
region_a_edit_offset += 1;
|
||||
cx.run_until_parked();
|
||||
|
||||
cx.executor()
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ fn get_all_languages(extension_map: &HashMap<String, String>) -> Vec<(String, Ve
|
|||
}
|
||||
|
||||
let mut result: Vec<_> = language_to_extensions.into_iter().collect();
|
||||
result.sort_by(|a, b| a.0.to_lowercase().cmp(&b.0.to_lowercase()));
|
||||
result.sort_by_key(|res| res.0.to_lowercase());
|
||||
for (_, extensions) in &mut result {
|
||||
extensions.sort();
|
||||
}
|
||||
|
|
@ -380,7 +380,7 @@ pub fn run_filter_languages(
|
|||
if let Some(top_n) = args.show_top_excluded {
|
||||
if !excluded_extensions.is_empty() {
|
||||
let mut sorted: Vec<_> = excluded_extensions.into_iter().collect();
|
||||
sorted.sort_by(|a, b| b.1.cmp(&a.1));
|
||||
sorted.sort_by_key(|res| std::cmp::Reverse(res.1));
|
||||
eprintln!("\nTop {} excluded extensions:", top_n.min(sorted.len()));
|
||||
for (ext, count) in sorted.into_iter().take(top_n) {
|
||||
eprintln!(" {:>6} .{}", count, ext);
|
||||
|
|
@ -439,7 +439,7 @@ fn run_stats(input: &Path, extension_map: &HashMap<String, String>) -> Result<()
|
|||
}
|
||||
|
||||
let mut sorted_counts: Vec<_> = language_counts.into_iter().collect();
|
||||
sorted_counts.sort_by(|a, b| b.1.cmp(&a.1));
|
||||
sorted_counts.sort_by_key(|res| std::cmp::Reverse(res.1));
|
||||
|
||||
println!("Language distribution ({} total examples):", total_count);
|
||||
println!();
|
||||
|
|
@ -452,7 +452,7 @@ fn run_stats(input: &Path, extension_map: &HashMap<String, String>) -> Result<()
|
|||
println!();
|
||||
println!("Unknown extensions:");
|
||||
let mut sorted_unknown: Vec<_> = unknown_extensions.into_iter().collect();
|
||||
sorted_unknown.sort_by(|a, b| b.1.cmp(&a.1));
|
||||
sorted_unknown.sort_by_key(|res| std::cmp::Reverse(res.1));
|
||||
for (ext, count) in sorted_unknown.iter().take(30) {
|
||||
println!(" {:>6} .{}", count, ext);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4398,8 +4398,7 @@ mod tests {
|
|||
let mut expected_longest_rows_in_range = vec![];
|
||||
let mut longest_line_len_in_range = 0;
|
||||
|
||||
let mut row = start_row as u32;
|
||||
for line in &expected_lines[start_row..end_row] {
|
||||
for (row, line) in (start_row as u32..).zip(&expected_lines[start_row..end_row]) {
|
||||
let line_char_count = line.chars().count() as isize;
|
||||
match line_char_count.cmp(&longest_line_len_in_range) {
|
||||
Ordering::Less => {}
|
||||
|
|
@ -4410,7 +4409,6 @@ mod tests {
|
|||
expected_longest_rows_in_range.push(row);
|
||||
}
|
||||
}
|
||||
row += 1;
|
||||
}
|
||||
|
||||
let longest_row_in_range = blocks_snapshot
|
||||
|
|
|
|||
|
|
@ -1577,6 +1577,10 @@ mod tests {
|
|||
let mut all_tab_stops = Vec::new();
|
||||
let mut byte_offset = 1;
|
||||
let mut char_offset = 1;
|
||||
#[expect(
|
||||
clippy::explicit_counter_loop,
|
||||
reason = "Lint does not account for char_offset being needed after the loop"
|
||||
)]
|
||||
for ch in buffer_snapshot.text().chars() {
|
||||
if ch == '\t' {
|
||||
all_tab_stops.push(TabStop {
|
||||
|
|
|
|||
|
|
@ -51,8 +51,8 @@ impl LspColorData {
|
|||
to_remove: Vec::new(),
|
||||
to_insert: self
|
||||
.buffer_colors
|
||||
.iter()
|
||||
.flat_map(|(_, buffer_colors)| buffer_colors.colors.iter())
|
||||
.values()
|
||||
.flat_map(|buffer_colors| buffer_colors.colors.iter())
|
||||
.map(|(range, color, id)| {
|
||||
Inlay::color(
|
||||
id.id(),
|
||||
|
|
@ -120,8 +120,8 @@ impl LspColorData {
|
|||
Vec::new()
|
||||
} else {
|
||||
self.buffer_colors
|
||||
.iter()
|
||||
.flat_map(|(_, buffer_colors)| &buffer_colors.colors)
|
||||
.values()
|
||||
.flat_map(|buffer_colors| &buffer_colors.colors)
|
||||
.map(|(range, color, _)| {
|
||||
let display_range = range.clone().to_display_points(snapshot);
|
||||
let color = Hsla::from(Rgba {
|
||||
|
|
|
|||
|
|
@ -24465,8 +24465,8 @@ impl Editor {
|
|||
let snapshot = self.snapshot(window, cx);
|
||||
let mut used_highlight_orders = HashMap::default();
|
||||
self.highlighted_rows
|
||||
.iter()
|
||||
.flat_map(|(_, highlighted_rows)| highlighted_rows.iter())
|
||||
.values()
|
||||
.flat_map(|highlighted_rows| highlighted_rows.iter())
|
||||
.fold(
|
||||
BTreeMap::<DisplayRow, LineHighlight>::new(),
|
||||
|mut unique_rows, highlight| {
|
||||
|
|
|
|||
|
|
@ -1288,7 +1288,7 @@ mod tests {
|
|||
.runnables
|
||||
.iter()
|
||||
.flat_map(|(_, (_, tasks))| {
|
||||
tasks.iter().flat_map(|(_, runnable_tasks)| {
|
||||
tasks.values().flat_map(|runnable_tasks| {
|
||||
runnable_tasks
|
||||
.templates
|
||||
.iter()
|
||||
|
|
|
|||
|
|
@ -612,10 +612,7 @@ impl Matches {
|
|||
// We build a sorted Vec<Match>, eliminating duplicate search matches.
|
||||
// Search matches with the same paths should have equal `ProjectPanelOrdMatch`, so we should
|
||||
// not have any duplicates after building the final list.
|
||||
for new_match in new_history_matches
|
||||
.into_values()
|
||||
.chain(new_search_matches.into_iter())
|
||||
{
|
||||
for new_match in new_history_matches.into_values().chain(new_search_matches) {
|
||||
match self.position(&new_match, currently_opened) {
|
||||
Ok(_duplicate) => continue,
|
||||
Err(i) => {
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ impl Blame {
|
|||
) -> Result<Self> {
|
||||
let output = run_git_blame(git, path, content, line_ending).await?;
|
||||
let mut entries = parse_git_blame(&output)?;
|
||||
entries.sort_unstable_by(|a, b| a.range.start.cmp(&b.range.start));
|
||||
entries.sort_unstable_by_key(|entry| entry.range.start);
|
||||
|
||||
let mut unique_shas = HashSet::default();
|
||||
|
||||
|
|
|
|||
|
|
@ -822,7 +822,7 @@ impl ProjectDiff {
|
|||
|
||||
let mut buffers_to_fold = Vec::new();
|
||||
|
||||
for (entry, path_key) in buffers_to_load.into_iter().zip(path_keys.into_iter()) {
|
||||
for (entry, path_key) in buffers_to_load.into_iter().zip(path_keys) {
|
||||
if let Some((buffer, diff)) = entry.load.await.log_err() {
|
||||
// We might be lagging behind enough that all future entry.load futures are no longer pending.
|
||||
// If that is the case, this task will never yield, starving the foreground thread of execution time.
|
||||
|
|
|
|||
|
|
@ -313,7 +313,7 @@ async fn resolve_dynamic_schema(
|
|||
.all_lsp_adapters()
|
||||
.into_iter()
|
||||
.map(|adapter| adapter.name())
|
||||
.chain(languages.available_lsp_adapter_names().into_iter())
|
||||
.chain(languages.available_lsp_adapter_names())
|
||||
.map(|name| name.to_string())
|
||||
.collect();
|
||||
|
||||
|
|
|
|||
|
|
@ -1163,7 +1163,7 @@ fn test_random_edits(
|
|||
|
||||
let layers = syntax_map.layers(&buffer);
|
||||
let reference_layers = reference_syntax_map.layers(&buffer);
|
||||
for (edited_layer, reference_layer) in layers.into_iter().zip(reference_layers.into_iter()) {
|
||||
for (edited_layer, reference_layer) in layers.into_iter().zip(reference_layers) {
|
||||
assert_eq!(
|
||||
edited_layer.node().to_sexp(),
|
||||
reference_layer.node().to_sexp()
|
||||
|
|
@ -1326,9 +1326,7 @@ fn test_edit_sequence(language_name: &str, steps: &[&str], cx: &mut App) -> (Buf
|
|||
reference_layers.len(),
|
||||
"wrong number of layers at step {i}"
|
||||
);
|
||||
for (edited_layer, reference_layer) in
|
||||
mutated_layers.into_iter().zip(reference_layers.into_iter())
|
||||
{
|
||||
for (edited_layer, reference_layer) in mutated_layers.into_iter().zip(reference_layers) {
|
||||
assert_eq!(
|
||||
edited_layer.node().to_sexp(),
|
||||
reference_layer.node().to_sexp(),
|
||||
|
|
|
|||
|
|
@ -895,7 +895,7 @@ impl ContextProvider for PythonContextProvider {
|
|||
Ok(task::TaskVariables::from_iter(
|
||||
test_target
|
||||
.into_iter()
|
||||
.chain(module_target.into_iter())
|
||||
.chain(module_target)
|
||||
.chain([toolchain]),
|
||||
))
|
||||
})
|
||||
|
|
|
|||
|
|
@ -3575,10 +3575,7 @@ impl MultiBufferSnapshot {
|
|||
continue 'anchors;
|
||||
};
|
||||
cursor.seek_forward(path, Bias::Left);
|
||||
'excerpts: loop {
|
||||
let Some(excerpt) = cursor.item() else {
|
||||
break;
|
||||
};
|
||||
'excerpts: while let Some(excerpt) = cursor.item() {
|
||||
if excerpt.path_key != *path {
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2955,7 +2955,7 @@ impl ReferenceMultibuffer {
|
|||
})
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
new_ranges.sort_by(|l, r| l.context.start.cmp(&r.context.start));
|
||||
new_ranges.sort_by_key(|nr| nr.context.start);
|
||||
|
||||
self.set_excerpts(
|
||||
path.unwrap(),
|
||||
|
|
@ -3899,7 +3899,7 @@ fn mutate_excerpt_ranges(
|
|||
}
|
||||
|
||||
existing_ranges.extend(ranges_to_add);
|
||||
existing_ranges.sort_by(|l, r| l.start.cmp(&r.start));
|
||||
existing_ranges.sort_by_key(|r| r.start);
|
||||
}
|
||||
|
||||
fn check_multibuffer(
|
||||
|
|
|
|||
|
|
@ -311,7 +311,7 @@ impl MultiBuffer {
|
|||
cursor.next();
|
||||
}
|
||||
|
||||
ranges.sort_by(|l, r| l.context.start.cmp(&r.context.start));
|
||||
ranges.sort_by_key(|r| r.context.start);
|
||||
|
||||
self.set_excerpt_ranges_for_path(path.clone(), buffer, buffer_snapshot, ranges, cx);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2969,8 +2969,8 @@ impl LocalLspStore {
|
|||
.flat_map(|(worktree_id, servers)| {
|
||||
servers
|
||||
.roots
|
||||
.iter()
|
||||
.flat_map(|(_, language_servers)| language_servers)
|
||||
.values()
|
||||
.flatten()
|
||||
.map(move |(_, (server_node, server_languages))| {
|
||||
(worktree_id, server_node, server_languages)
|
||||
})
|
||||
|
|
|
|||
|
|
@ -10520,7 +10520,7 @@ fn merge_pending_ops_snapshots(
|
|||
t_ops.ops.push(s_op);
|
||||
}
|
||||
}
|
||||
t_ops.ops.sort_by(|l, r| l.id.cmp(&r.id));
|
||||
t_ops.ops.sort_by_key(|op| op.id);
|
||||
} else {
|
||||
target.push(s_ops);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -220,7 +220,7 @@ fn get_open_folders(workspace: &Workspace, cx: &App) -> Vec<OpenFolderEntry> {
|
|||
})
|
||||
.collect();
|
||||
|
||||
entries.sort_by(|a, b| a.name.to_lowercase().cmp(&b.name.to_lowercase()));
|
||||
entries.sort_by_key(|entry| entry.name.to_lowercase());
|
||||
entries
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -219,8 +219,8 @@ impl SnippetProvider {
|
|||
.get(language)
|
||||
.cloned()
|
||||
.unwrap_or_default()
|
||||
.into_iter()
|
||||
.flat_map(|(_, snippets)| snippets.into_iter())
|
||||
.into_values()
|
||||
.flat_map(|snippets| snippets.into_iter())
|
||||
.collect();
|
||||
if LOOKUP_GLOBALS {
|
||||
if let Some(global_watcher) = cx.try_global::<GlobalSnippetWatcher>() {
|
||||
|
|
|
|||
|
|
@ -147,14 +147,12 @@ fn populate_pane_items(
|
|||
window: &mut Window,
|
||||
cx: &mut Context<Pane>,
|
||||
) {
|
||||
let mut item_index = pane.items_len();
|
||||
let mut active_item_index = None;
|
||||
for item in items {
|
||||
for (item_index, item) in (pane.items_len()..).zip(items) {
|
||||
if Some(item.item_id().as_u64()) == active_item {
|
||||
active_item_index = Some(item_index);
|
||||
}
|
||||
pane.add_item(Box::new(item), false, false, None, window, cx);
|
||||
item_index += 1;
|
||||
}
|
||||
if let Some(index) = active_item_index {
|
||||
pane.activate_item(index, false, false, window, cx);
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ fn apply_helix_surround_edits<F>(
|
|||
let selections = editor.selections.all_display(&display_map);
|
||||
let (mut edits, anchors) = build(&display_map, selections);
|
||||
|
||||
edits.sort_by(|a, b| b.0.start.cmp(&a.0.start));
|
||||
edits.sort_by_key(|edit| edit.0.start);
|
||||
editor.edit(edits, cx);
|
||||
|
||||
editor.change_selections(Default::default(), window, cx, |s| {
|
||||
|
|
|
|||
|
|
@ -1411,7 +1411,7 @@ impl RegistersView {
|
|||
})
|
||||
}
|
||||
});
|
||||
matches.sort_by(|a, b| a.name.cmp(&b.name));
|
||||
matches.sort_by_key(|m| m.name);
|
||||
let delegate = RegistersViewDelegate {
|
||||
selected_index: 0,
|
||||
matches,
|
||||
|
|
|
|||
|
|
@ -5019,7 +5019,7 @@ impl BackgroundScanner {
|
|||
}
|
||||
}
|
||||
|
||||
for (path, metadata) in relative_paths.iter().zip(metadata.into_iter()) {
|
||||
for (path, metadata) in relative_paths.iter().zip(metadata) {
|
||||
let abs_path: Arc<Path> = root_abs_path.join(path.as_std_path()).into();
|
||||
match metadata {
|
||||
Ok(Some((metadata, canonical_path))) => {
|
||||
|
|
|
|||
|
|
@ -611,11 +611,10 @@ fn map_boundary_offset(
|
|||
.saturating_sub(span_common_prefix)
|
||||
.saturating_sub(span_common_suffix);
|
||||
|
||||
if old_changed_len == 0 {
|
||||
new_changed_start
|
||||
} else {
|
||||
new_changed_start + ((old_rel - old_changed_start) * new_changed_len / old_changed_len)
|
||||
}
|
||||
new_changed_start
|
||||
+ ((old_rel - old_changed_start) * new_changed_len)
|
||||
.checked_div(old_changed_len)
|
||||
.unwrap_or(new_changed_len)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -79,11 +79,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1775013181,
|
||||
"narHash": "sha256-zPrt6oNM1r/RO5bWYaZ3hthfG9vzkr6kQdoqDd5x4Qw=",
|
||||
"lastModified": 1777346187,
|
||||
"narHash": "sha256-oVxyGjpiIsrXhWTJVUOs38fZQkLjd0nZGOY9K7Kfot8=",
|
||||
"owner": "oxalica",
|
||||
"repo": "rust-overlay",
|
||||
"rev": "e8046c1d9ccadd497c2344d8fa49dab62f22f7be",
|
||||
"rev": "146e7bf7569b8288f24d41d806b9f584f7cfd5b5",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
[toolchain]
|
||||
channel = "1.94.1"
|
||||
channel = "1.95.0"
|
||||
profile = "minimal"
|
||||
components = [ "rustfmt", "clippy", "rust-analyzer", "rust-src" ]
|
||||
targets = [
|
||||
|
|
|
|||
Loading…
Reference in a new issue