mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-10-05 07:51:05 +01:00
ImplWitness (#4679)
* 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 #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. --------- Co-authored-by: Josh L <josh11b@users.noreply.github.com> Co-authored-by: Richard Smith <richard@metafoo.co.uk>
This commit is contained in:
co-authored by
Josh L
Richard Smith
parent
4a7aefefaa
commit
c5fd8f42b8
@@ -261,7 +261,7 @@ static auto BuildFunctionDecl(Context& context,
|
||||
if (function_info.is_extern && context.IsImplFile()) {
|
||||
DiagnoseExternRequiresDeclInApiFile(context, node_id);
|
||||
}
|
||||
function_info.generic_id = FinishGenericDecl(context, decl_id);
|
||||
function_info.generic_id = BuildGenericDecl(context, decl_id);
|
||||
function_decl.function_id = context.functions().Add(function_info);
|
||||
} else {
|
||||
FinishGenericRedecl(context, decl_id, function_info.generic_id);
|
||||
|
||||
Reference in New Issue
Block a user