1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-09 03:52:19 +02:00

Disallowing generic arguments on ctors/dtors

This commit is contained in:
Brian Fiete 2020-06-22 05:56:57 -07:00
parent 81e9438823
commit c4544f67d3

View file

@ -584,7 +584,20 @@ BfMethodDef* BfDefBuilder::CreateMethodDef(BfMethodDeclaration* methodDeclaratio
int outerGenericSize = 0;
if (outerMethodDef != NULL)
outerGenericSize = (int)outerMethodDef->mGenericParams.size();
ParseGenericParams(methodDeclaration->mGenericParams, methodDeclaration->mGenericConstraintsDeclaration, methodDef->mGenericParams, &methodDef->mExternalConstraints, outerGenericSize);
if ((methodDef->mMethodType == BfMethodType_Normal) ||
(methodDef->mMethodType == BfMethodType_Operator) ||
(methodDef->mMethodType == BfMethodType_Mixin))
{
ParseGenericParams(methodDeclaration->mGenericParams, methodDeclaration->mGenericConstraintsDeclaration, methodDef->mGenericParams, &methodDef->mExternalConstraints, outerGenericSize);
}
else
{
if (methodDeclaration->mGenericParams != NULL)
Fail("Generic parameters are only allowed on normal methods", methodDeclaration->mGenericParams);
if (methodDeclaration->mGenericConstraintsDeclaration != NULL)
Fail("Generic constraints are only allowed on normal methods", methodDeclaration->mGenericConstraintsDeclaration);
}
bool didDefaultsError = false;
bool hadParams = false;