@@ -406,25 +406,21 @@ PropertyWrapperTypeInfoRequest::evaluate(
406406 }
407407 }
408408
409- auto diagnoseInvalidDynamicSelf = [&]() -> bool {
410- bool invalidDynamicSelf = false ;
411- if (result.projectedValueVar &&
412- result.projectedValueVar ->getValueInterfaceType ()->is <DynamicSelfType>()) {
413- result.projectedValueVar ->diagnose (
414- diag::property_wrapper_dynamic_self_type, /* projectedValue=*/ true );
415- invalidDynamicSelf = true ;
416- }
417-
418- if (result.valueVar ->getValueInterfaceType ()->is <DynamicSelfType>()) {
419- result.valueVar ->diagnose (
420- diag::property_wrapper_dynamic_self_type, /* projectedValue=*/ false );
421- invalidDynamicSelf = true ;
422- }
409+ bool hasInvalidDynamicSelf = false ;
410+ if (result.projectedValueVar &&
411+ result.projectedValueVar ->getValueInterfaceType ()->hasDynamicSelfType ()) {
412+ result.projectedValueVar ->diagnose (
413+ diag::property_wrapper_dynamic_self_type, /* projectedValue=*/ true );
414+ hasInvalidDynamicSelf = true ;
415+ }
423416
424- return invalidDynamicSelf;
425- };
417+ if (result.valueVar ->getValueInterfaceType ()->hasDynamicSelfType ()) {
418+ result.valueVar ->diagnose (
419+ diag::property_wrapper_dynamic_self_type, /* projectedValue=*/ false );
420+ hasInvalidDynamicSelf = true ;
421+ }
426422
427- if (diagnoseInvalidDynamicSelf () )
423+ if (hasInvalidDynamicSelf )
428424 return PropertyWrapperTypeInfo ();
429425
430426 return result;
0 commit comments