Zum Hauptinhalt springen
ai-slop/rust-todo-stubmanuelle Behebung

todo!- oder unimplemented!-Stub.

Ein `todo!()`- oder `unimplemented!()`-Makro in Rust-Code. Es passt typmäßig zu jedem Rückgabetyp und löst einen Panic aus, sobald der Pfad ausgeführt wird.

Beanstandete und saubere Form.

Jedes Beispiel zeigt genau die Codeform, nach der die Regel sucht, und dann die kleinste Version, die die Absicht bewahrt, ohne Risiken zu verstecken oder Rauschen hinzuzufügen.

rust-todo-stub.rs
✗ Beanstandet
impl Exporter for CsvExporter {
    fn export(&self, rows: &[Row]) -> Result<Vec<u8>, ExportError> {
        todo!()
    }
}
Warum das anschlägt

Deterministischer Zeilenabgleich: beanstandet `todo!(` und `unimplemented!(` in jeder Zeile, die kein `//`-Kommentar ist.

rust-todo-stub.rs
✓ Sauber
impl Exporter for CsvExporter {
    fn export(&self, rows: &[Row]) -> Result<Vec<u8>, ExportError> {
        let mut writer = csv::Writer::from_writer(Vec::new());
        for row in rows {
            writer.serialize(row)?;
        }
        writer.into_inner().map_err(ExportError::from)
    }
}
Was sich geändert hat

Implementiere den Pfad oder gib einen Fehler zurück, den der Aufrufer behandeln kann. Ist die Arbeit wirklich aufgeschoben, verfolge sie in einem Ticket statt über einen Panic zur Laufzeit.

Agenten nutzen die Makros, damit eine Signatur kompiliert, während sie anderswo arbeiten, und der Platzhalter wird ausgeliefert.

Wie diese Regel begründet ist.

Regel-ID

ai-slop/rust-todo-stub

Prüfende Engine

ai-slop

Erkennungsstrategie

Deterministischer Zeilenabgleich: beanstandet `todo!(` und `unimplemented!(` in jeder Zeile, die kein `//`-Kommentar ist.

Legitimer Code, der NICHT beanstandet wird

Auskommentierte Zeilen, Pfade unter `examples/` und `benches/` sowie `unreachable!()` werden nicht beanstandet.

Belege

Erschienen in aislop v0.8.0 mit den Rust-Detektoren, in den Release Notes beschrieben als unimplemented!() in Library-Code.