diff --git a/toolchain/check/impl.cpp b/toolchain/check/impl.cpp index 20d05a2e21b2..1293b68f2131 100644 --- a/toolchain/check/impl.cpp +++ b/toolchain/check/impl.cpp @@ -129,9 +129,11 @@ static auto CheckAssociatedFunctionImplementation( .generic_id, self_type_id, witness_inst_id); - // TODO: This should be a semantic check rather than a syntactic one. The - // functions should be allowed to have different signatures as long as we can - // synthesize a suitable thunk. + // TODO: The functions should be allowed to have different signatures as long + // as we can synthesize a suitable thunk. i.e., when there's an implicit + // conversion from the original parameter types to the overriding parameter + // types, and from the overriding return type to the original return type. + // Also, build that thunk. if (!CheckFunctionTypeMatches( context, context.functions().Get(impl_function_decl->function_id), context.functions().Get(interface_function_type.function_id),