mirror of
https://github.com/zed-industries/zed.git
synced 2026-07-20 13:16:36 +00:00
Adds a dylint library under tooling/lints that flags Zed-specific anti-patterns: * shared_string_from_str_literal, * async_block_without_await, * entity_update_in_render, * notify_in_render, * owned_string_into_shared, * len_in_loop_condition, and * blocking_io_on_foreground. Includes UI tests, a single-lint helper, and workspace.metadata.dylint registration so cargo dylint --all discovers it. The library pins its own nightly toolchain (kept out of the main workspace) and tracks dylint 6. Release Notes: - N/A Self-Review Checklist: - [ ] I've reviewed my own diff for quality, security, and reliability - [ ] Unsafe blocks (if any) have justifying comments - [ ] The content is consistent with the [UI/UX checklist](https://github.com/zed-industries/zed/blob/main/CONTRIBUTING.md#uiux-checklist) - [ ] Tests cover the new/changed behavior - [ ] Performance impact has been considered and is acceptable Closes #ISSUE Release Notes: - N/A or Added/Fixed/Improved ...
31 lines
815 B
Rust
31 lines
815 B
Rust
//! Minimal stand-in for the real `gpui_shared_string` crate. The lint keys
|
|
//! off the crate name and the type name `SharedString`, so we only need to
|
|
//! reproduce those.
|
|
|
|
#[derive(Clone)]
|
|
pub struct SharedString(String);
|
|
|
|
impl SharedString {
|
|
pub const fn new_static(s: &'static str) -> Self {
|
|
// The real implementation stores the `'static` pointer; we just wrap
|
|
// an empty String at compile time to keep this `const`.
|
|
let _ = s;
|
|
SharedString(String::new())
|
|
}
|
|
|
|
pub fn new(s: impl AsRef<str>) -> Self {
|
|
SharedString(s.as_ref().to_owned())
|
|
}
|
|
}
|
|
|
|
impl From<&str> for SharedString {
|
|
fn from(s: &str) -> Self {
|
|
SharedString(s.to_owned())
|
|
}
|
|
}
|
|
|
|
impl From<String> for SharedString {
|
|
fn from(s: String) -> Self {
|
|
SharedString(s)
|
|
}
|
|
}
|