Skip to main content

fix-errors

Fix compilation errors, linting issues, and test failures in the warp Rust codebase. Covers presubmit checks, WASM-specific errors, and running specific tests. Use when the user hits build errors, clippy or fmt failures, test failures, or needs to run or interpret presubmit before a PR.

Quellinformationen

Repository
warpdotdev/common-skills
Letzte Quellaktivität
15. September 2026 um 18:43
Erkannte Sprache von SKILL.md
Englisch
Sterne
606
Forks
34

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
name
fix-errors
description
Fix compilation errors, linting issues, and test failures in the warp Rust codebase. Covers presubmit checks, WASM-specific errors, and running specific tests. Use when the user hits build errors, clippy or fmt failures, test failures, or needs to run or interpret presubmit before a PR.
# fix-errors Fix compilation errors, linting issues, and test failures in the warp Rust codebase. ## Overview This skill helps resolve common issues encountered during development, including: - Compilation errors (unused imports, type mismatches, etc.) - Linting failures (clippy warnings) - Formatting violations - WASM-specific errors - Test failures Fix the reported failure with the narrowest useful command. Do not turn a targeted repair into repeated full-workspace validation. ## Full Presubmit Run the full presubmit only when the user, task, or approved spec explicitly requires it: ```bash ./script/presubmit ``` This runs formatting checks, linting, and all tests. It is intentionally broader and more expensive than the default implementation workflow. ### Individual Checks Run checks separately when debugging specific issues: **Rust formatting:** ```bash cargo fmt -- --check ``` **Clippy (full workspace):** ```bash cargo clippy --workspace --all-targets --tests -- -D warnings ``` **WASM Clippy:** ```bash cargo clippy --target wasm32-unknown-unknown --profile release-wasm-debug_assertions --no-deps ``` **Objective-C/C/C++ formatting:** ```bash ./script/run-clang-format.py -r --extensions 'c,h,cpp,m' ./crates/warpui/src/ ./app/src/ ``` **All tests:** ```bash cargo nextest run --no-fail-fast --workspace --exclude command-signatures-v2 cargo nextest run -p warp_completer --features v2 ``` **Doc tests:** ```bash cargo test --doc ``` ## Running Specific Tests **Single package:** ```bash cargo nextest run -p <package_name> ``` **Filter by test name:** ```bash cargo nextest run -E 'test(<substring>)' ``` **Specific package with filter:** ```bash cargo nextest run -p <package_name> -E 'test(<substring>)' ``` **With output (no capture):** ```bash cargo nextest run -p <package> --nocapture ``` ## Common Error Types ### Unused Imports Remove unused `use` statements identified by the compiler. ### Unused Constants Remove constants that are defined but never used. ### Unknown Imports Add the correct `use` statement for undefined types. Search the codebase to find the correct module path. ### Type Mismatches Update function calls to pass arguments of the correct type. Common fixes: - Use `.as_str()` instead of `.clone()` when a `&str` is expected - Use `&value` when a reference is needed - Use `.to_string()` when `String` is expected but `&str` is provided ### Struct Field Changes When a struct adds/removes fields, update all places where it's constructed or destructured: - Struct initialization - Pattern matching (`match`, `if let`) - Destructuring assignments ### Function Signature Changes When a function adds a new parameter, update all call sites to provide the new argument: - For `bool` params: pass `true` or `false` based on context - For `Option<T>` params: pass `None` as default or `Some(value)` if needed ### Enum Variant Changes When adding a new enum variant, update exhaustive `match` statements: - Add a new match arm with appropriate handling - Mirror the implementation pattern of similar variants ### Incorrect Trait Implementation Fix trait implementations that return the wrong type or don't satisfy trait bounds. ### WASM-Specific Errors WASM builds (`wasm32-unknown-unknown` target) don't support filesystem operations. Code that uses filesystem APIs must be gated behind the `local_fs` feature flag. **Common WASM errors:** - Dead code warnings for code only used in non-WASM builds - Unused code that's only relevant when `local_fs` is available - Tests that require filesystem access **Fixes:** **Gate tests behind `local_fs`:** ```rust #[test] #[cfg(feature = "local_fs")] fn test_find_git_repo_with_worktree() { // Test that uses filesystem operations } ``` **Conditionally allow dead code for types only used when `local_fs` is enabled:** ```rust #[cfg_attr(not(feature = "local_fs"), allow(dead_code))] #[derive(Clone, EnumDiscriminants, Serialize)] pub enum ExampleType { // Variants only used when local_fs is enabled Variant1, Variant2, Variant3, } ``` WASM errors are discovered by running: ```bash cargo clippy --target wasm32-unknown-unknown --profile release-wasm-debug_assertions --no-deps ``` ## Best Practices **Before fixing:** - Read the full error message to understand the root cause - Check if multiple errors are related (fixing one may resolve others) - For trait/type errors, verify you understand the expected vs actual types - For WASM errors, check if code needs to be gated behind `local_fs` **When fixing:** - Fix one error type at a time when there are multiple issues - Run the smallest applicable `cargo check` when it helps resolve compiler errors; do not repeat broad checks without a relevant code change - For WASM errors, run WASM clippy to verify the fix - For complex changes, run relevant tests after fixing **After fixing:** - Run the relevant `cargo nextest` tests and fix the code until they pass - Run the applicable Clippy invocation and fix its findings; return to affected tests only when a fix materially changes behavior - Run `./script/format` once after all other code changes are complete - Do not rerun tests or Clippy after formatting, and do not add a full presubmit run, unless explicitly required - If you only fixed a formatting failure and made no behavioral code change, rerun only the formatter
Auf GitHub ansehen