Skip to content

Lint clean up#63

Closed
steve-downey wants to merge 0 commit into
bemanproject:mainfrom
steve-downey:main
Closed

Lint clean up#63
steve-downey wants to merge 0 commit into
bemanproject:mainfrom
steve-downey:main

Conversation

@steve-downey

Copy link
Copy Markdown
Member

No description provided.

@steve-downey

Copy link
Copy Markdown
Member Author

Closing/replacing: this PR was opened from my fork's main, which then picked up unrelated D4280R0 paper/wording commits, so it bundled far more than the lint cleanup. Re-opened as a focused PR from a dedicated fix/beman-tidy-lint-failures branch containing only the four lint commits.

steve-downey added a commit that referenced this pull request Jul 12, 2026
Beman Standard lint fixes, split out from the accidentally-bundled #63
(which came off my fork's `main` and picked up unrelated paper work).

Four commits, touching only lint concerns:
- **Rename negative-compile tests to `*.test.cpp`** — [file.test_names]
requires test sources to match `*.test.cpp`; renames the 56
`add_fail_test` sources and updates their CMakeLists references.
- **Add missing SPDX-License-Identifier headers** — [file.license_id]
requires an SPDX header in the first 25 lines; adds Apache-2.0 WITH
LLVM-exception to CMake toolchain files, GitHub workflow/dependabot
configs, and remaining example/paper sources.
- **Link the README library-status badge** — [readme.badges] requires
the badge wrapped in a link to the maturity-model doc.
- **Fix codespell failures in papers/wg21-latex** — real typos fixed;
`FitH` and `ist` added to the ignore list as legitimate technical
tokens.
steve-downey added a commit that referenced this pull request Jul 12, 2026
The D4280R0 *Expected Over References* paper and its `[expected]`
wording, split out from my fork's `main` (previously tangled into the
lint PR #63). Touches only `papers/` and `docs/`.

### Paper
- Rewrite of *Expected Over References* on the P2988 abstract /
before-after / decision-log outline, plus a correction so the structure
matches the code: **one** value-reference specialization `expected<T&,
E>` (not six), with reference *errors* admitted by relaxing the `E`
constraint rather than by new specializations.
- Render the `T&, E` synopsis in Standard house style; track
`.clang-format` (`SpaceAfterTemplateKeyword: false`).

### Wording (`[expected]`)
Change-marked against a checked-in draft-standard baseline:
- `expected-base.tex` — pristine `[expected]` extracted from the working
draft (the diff baseline; do not edit).
- `expected-new.tex` — the editable copy; proposed changes as
`\added`/`\removed`/`\changed` marks, so a diff vs the baseline is
exactly the wording delta.
- `strip-wording.py` (`make strip-wording`) — strips the change markup
to produce clean text for a working-draft PR.

Wording content:
- New `[expected.ref]` subclause: `expected<T&, E>` synopsis and full
member descriptions (rebind-on-assign, temporary-binding overloads
deleted via `reference_constructs_from_temporary`, shallow-const
observers, no-steal converting construction, `value_or` by value,
uniform monadic ops passing `T&`).
- New `[expected.un.ref]` subclause: `unexpected<E&>` (pointer-backed),
and a carve-out letting a reference `E` be a valid `unexpected`
argument.
- Relax the `E`-Destructible constraint for reference errors in
`[expected.object.general]` / `[expected.void.general]`.
- Store the error as `unexpected<E>` (not a bare union member `E`) in
the primary, void, and ref specs, since `E&` can't be a union member;
make the `swap` `noexcept` specs precise for reference `E`.

Each wording commit records its verified stripped-diff-vs-baseline line
count; build is clean at 93 pages.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant