1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 11:38:21 +02:00

Don't allow conversions for type constraint matches

This commit is contained in:
Brian Fiete 2024-03-22 07:47:39 -04:00
parent 085a3fe091
commit f44295e8ea

View file

@ -8693,7 +8693,7 @@ bool BfModule::CheckGenericConstraints(const BfGenericParamSource& genericParamS
else if ((checkArgType->IsFunction()) && (convCheckConstraint->IsInstanceOf(mCompiler->mFunctionTypeDef)))
constraintMatched = true;
}
else if (CanCast(GetFakeTypedValue(checkArgType), convCheckConstraint))
else if ((checkArgType == convCheckConstraint) || (TypeIsSubTypeOf(checkArgType->ToTypeInstance(), convCheckConstraint->ToTypeInstance())))
{
constraintMatched = true;
}
@ -8719,8 +8719,8 @@ bool BfModule::CheckGenericConstraints(const BfGenericParamSource& genericParamS
if (!constraintMatched)
{
BfType* wrappedStructType = GetWrappedStructType(origCheckArgType, false);
if (CanCast(GetFakeTypedValue(wrappedStructType), convCheckConstraint))
BfTypeInstance* wrappedStructType = GetWrappedStructType(origCheckArgType, false);
if ((wrappedStructType == convCheckConstraint) || (TypeIsSubTypeOf(wrappedStructType, convCheckConstraint->ToTypeInstance())))
constraintMatched = true;
}
}