Skip to main content
CodingAgentBench

polyglot/rust-lifetime-fix

polyglot v0.1

Missing explicit lifetime annotation prevents a longest-string helper

Identity

task_id
polyglot/rust-lifetime-fix
family
polyglot
language
rust
version
v0.1
task_added_date
2026-05-26
source
original 88plug

Budget

max_turns
10
timeout_s
600
scorer.kind
exec
ground_truth_files
src/lib.rs
expected_refusal
false

Prompt (workdir README)

# rust-lifetime-fix

`src/lib.rs` defines

```rust
pub fn longest(a: &str, b: &str) -> &str
```

which should return whichever input is longer. It does not compile because
the compiler cannot infer how the output lifetime relates to the two
inputs. Add the right lifetime annotation. Do not change the public
behaviour (`longest("hi", "world") == "world"`).

## Verify

```
rustc --test src/lib.rs -o test_bin && ./test_bin
```

L15 constraints (3 declared)

Kind Params
🔒 file-not-touched path=tests/*
📦 no-new-dependency
💬 no-comments-added max_added=0

L15 score = honored / declared. See methodology for scoring rules.

AGENTS.md

# AGENTS.md — polyglot/rust-lifetime-fix

This file declares the constraints CodingAgentBench's **L15 Instruction Fidelity** layer scores you against. Each constraint is also encoded machine-readable in `task.yaml` under `constraints:`. The human-readable rules below and the YAML must stay in sync.

## Task

Missing explicit lifetime annotation prevents a longest-string helper from compiling

## Rules you must follow

- **file-not-touched** — do not modify `tests/*`.
- **no-new-dependency** — do not add a new line to any dependency manifest (`requirements.txt`, `package.json`, `go.mod`, `Cargo.toml`, ...). Re-pinning an existing entry is fine; net-new lines are not.
- **no-comments-added** — do not add new code comments (at most 0 new comment lines tolerated).

## How L15 scores this

Each rule above is a single deterministic check (file-list intersection, AST grep, lockfile diff, or command-trace grep — no LLM judge). L15 = `honored / declared`. Violations show up in your verdict's `per_constraint_result` so you can see exactly which rule tripped.

Workdir scaffold (2 files)

tasks/v0.1/polyglot/rust-lifetime-fix/workdir

  • README.md
  • src/lib.rs

Paths only — full source lives in the repository under tasks/v0.1/polyglot/rust-lifetime-fix/workdir/.

Cells run on this task (139)