Support for calling non-generic methods in a specific class. (#4156)

Use the specific parameter types for checking, and the specific return
type as the type of the call.
This commit is contained in:
Richard Smith
2024-07-24 20:27:01 +00:00
committed by GitHub
parent 7ded56ef35
commit 07bad72d86
54 changed files with 1469 additions and 436 deletions
+3 -1
View File
@@ -1188,6 +1188,9 @@ auto TryEvalInstInContext(EvalContext& eval_context, SemIR::InstId inst_id,
case SemIR::ClassType::Kind:
return RebuildIfFieldsAreConstant(eval_context, inst,
&SemIR::ClassType::instance_id);
case SemIR::FunctionType::Kind:
return RebuildIfFieldsAreConstant(eval_context, inst,
&SemIR::FunctionType::instance_id);
case SemIR::InterfaceType::Kind:
return RebuildIfFieldsAreConstant(eval_context, inst,
&SemIR::InterfaceType::instance_id);
@@ -1252,7 +1255,6 @@ auto TryEvalInstInContext(EvalContext& eval_context, SemIR::InstId inst_id,
return RebuildInitAsValue(eval_context, inst, SemIR::TupleValue::Kind);
case SemIR::BuiltinInst::Kind:
case SemIR::FunctionType::Kind:
case SemIR::GenericClassType::Kind:
case SemIR::GenericInterfaceType::Kind:
// Builtins are always template constants.