Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ImplWitness #4679

Merged
merged 46 commits into from
Jan 2, 2025
Merged

ImplWitness #4679

merged 46 commits into from
Jan 2, 2025

Conversation

josh11b
Copy link
Contributor

@josh11b josh11b commented Dec 13, 2024

  • Change InterfaceWitness -> ImplWitness
  • Include a SpecificId in the ImplWitness. This allows the InstBlock it contains to have its own identity, allowing it to be changed as the impl is processed. Evaluation only updates the specific.
  • Create the ImplWitness at the start of the impl definition. In the future, this will be populated with the values of non-function associated constants. For now, it starts full of invalid instruction ids.
  • Implements the model suggested in Declaration and definition of impls and their associated functions #4672 .

Note that the non-SemIR testdata changes are to these file:

  • toolchain/check/testdata/impl/lookup/fail_todo_undefined_impl.carbon
  • toolchain/check/testdata/struct/import.carbon
  • toolchain/check/testdata/tuple/import.carbon

The last two are due to an import of generics bug exposed by this PR, which will be fixed in a follow-on.

@josh11b josh11b marked this pull request as draft December 13, 2024 01:01
@github-actions github-actions bot requested a review from zygoloid December 13, 2024 01:02
@josh11b josh11b force-pushed the witness branch 2 times, most recently from 32db121 to a19c40f Compare January 2, 2025 22:20
@josh11b josh11b marked this pull request as ready for review January 2, 2025 22:41
@github-actions github-actions bot requested a review from chandlerc January 2, 2025 22:42
@josh11b josh11b removed the request for review from chandlerc January 2, 2025 22:43
toolchain/check/generic.cpp Outdated Show resolved Hide resolved
toolchain/check/import_ref.cpp Outdated Show resolved Hide resolved
toolchain/check/testdata/struct/import.carbon Outdated Show resolved Hide resolved
toolchain/check/testdata/tuple/import.carbon Outdated Show resolved Hide resolved
@zygoloid zygoloid enabled auto-merge January 2, 2025 22:49
@zygoloid zygoloid added this pull request to the merge queue Jan 2, 2025
Merged via the queue into carbon-language:trunk with commit c5fd8f4 Jan 2, 2025
7 of 8 checks passed
@josh11b josh11b deleted the witness branch January 2, 2025 23:28
github-merge-queue bot pushed a commit that referenced this pull request Jan 3, 2025
Imported declarations that are contained within a generic, such as an
`impl forall...` would be given an abstract symbolic constant value
instead of a concrete generic value in some cases where the function was
used in an api file and impl file of the same library. This caused #4679
to fail using `ImplicitAs.Convert` transitively imported from the
prelude.

---------

Co-authored-by: Josh L <[email protected]>
Co-authored-by: Richard Smith <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants