Require a complete type when enumerating the fields of a class. (#2956)

Fixes a crash on invalid found by fuzzing.
This commit is contained in:
Richard Smith
2023-06-28 14:56:27 -07:00
committed by GitHub
parent 2e45dd58f9
commit a5c8cbdbf8
4 changed files with 80 additions and 52 deletions
+3 -3
View File
@@ -192,9 +192,9 @@ auto ImplScope::TryResolve(Nonnull<const Value*> constraint_type,
type_checker.Substitute(local_bindings, argument));
converted.arguments.push_back(subst_arg);
}
CARBON_ASSIGN_OR_RETURN(
bool intrinsic_satisfied,
type_checker.IsIntrinsicConstraintSatisfied(converted, *this));
CARBON_ASSIGN_OR_RETURN(bool intrinsic_satisfied,
type_checker.IsIntrinsicConstraintSatisfied(
source_loc, converted, *this));
if (!intrinsic_satisfied) {
if (!diagnose_missing_impl) {
return {std::nullopt};