Skip to content

feat: discover quantities from canonical type declarations - #21

Merged
ScottishTapWater merged 1 commit into
feat/discovery-methodsfrom
feat/discovery-type-names
Oct 24, 2026
Merged

ScottishTapWater merged 1 commit into
feat/discovery-methodsfrom
feat/discovery-type-names

Conversation

@ScottishTapWater

Copy link
Copy Markdown
Contributor

Summary

Stack 5 of 6, based on #20.

  • Parse canonical generated quantity names, including rational powers, using the dimensional model.
  • Discover unresolved simple type names in parameters, public API signatures and collection declarations.
  • Let those quantities participate in arithmetic without a producing initializer, including default values and collection elements.
  • Preserve existing symbols and explicit aliases; reject qualified unresolved names and unrelated indexer result types.
  • Keep parsing, source discovery and generation planning separate.

Verification

  • Solution build: no warnings or errors.
  • Core tests: 471 passed.
  • Full Roslyn suite: 409 passed before final review regressions; focused final regression runs passed (16, 10 and 5 cases).
  • Format verification and git diff --check passed.
  • Independent C# production and test reviews, followed by fixes and re-review.

The next PR adds referenced-assembly discovery and package interoperability coverage.

@ScottishTapWater
ScottishTapWater enabled stacked auto-merge (squash) October 24, 2026 18:04
stacked auto-merge was automatically disabled October 24, 2026 18:06

Auto-merge was disabled for another pull request in the stack

@ScottishTapWater
ScottishTapWater merged commit c99230a into main Oct 24, 2026
2 checks passed
@ScottishTapWater
ScottishTapWater deleted the feat/discovery-type-names branch October 24, 2026 18:07
ScottishTapWater added a commit that referenced this pull request Oct 24, 2026
…ty (#22)

## Summary

Stack 6 of 6, based on #21.

- Discover quantity dimensions from referenced values, including fields,
properties, method results and nested collection types.
- Generate consumer-local helpers even when no arithmetic or explicit
quantity name requests them.
- Use the existing type reader and planning pipeline; avoid scanning
entire referenced assemblies.
- Respect existing aliases, types and namespaces, and defer encoded-type
symbol resolution until a possible quantity is found.
- Add an ephemeral A/B/C NuGet test: independently build and pack A and
B, consume both from C, verify quantity type identity and conversions,
and generate further arithmetic in C.

## Verification

- Solution build: no warnings or errors.
- Core: 471 passed; Roslyn: 436 passed; package integration: 2 passed.
- Format verification and `git diff --check` pass.
- Independent C# production and test reviews; fixes independently
reviewed again.

No fixture projects or package artifacts are committed. This completes
the six discovery slices; diagnostics and IDE polish remain separate
follow-up work.
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