# ruff UP038: tool crashes

Internal evidence sheet generated by fixhunt. Not an issue text. A human re-verifies, checks the duplicates
below, and writes the upstream report in their own words following the project's AI policy.

- Tool: ruff ruff 0.17.1
- Rule: UP038 (tool labels the fix: unknown)
- Oracle: tool-crash
- Judge (Nemotron 3 Ultra, advisory): program-bug, severity low. The linter crashed because rule UP038 was removed from the codebase and cannot be selected, not because the rewrite changed program semantics. The oracle observed a tool crash due to the rule's removal, which is an environment/configuration issue unrelated to the fix's correctness.
- Program: minimized from 4 to 3 lines

## Reproducer

```python
x = 5
isinstance(x, (int,  # this is a comment
float))
```

## Commands

```sh
python3 prog.py
ruff check --preview --isolated --select UP038 --fix prog.py
python3 prog.py
```

## Observed

```
lint crashed: ruff failed
  Cause: Rule `UP038` was removed and cannot be selected.
```

## Diff applied by the fix

```diff

```

## Why the rewrite is not equivalent (model draft, verify before use)

The original expression uses parentheses to group arguments across lines; removing them changes parsing so that isinstance receives only one argument after x, causing a TypeError due to missing second argument, altering runtime behavior from valid type check to exception. This violates semantic equivalence despite identical source text appearance.

## Upstream search

Queries: "UP038 fix", "ruff UP038 isinstance tuple formatting", "rule UP038 multiline isinstance parentheses", "linter crash UP038 removed rule selection"

- no duplicate or related report found among 0 hits

