mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 14:24:10 +02:00
Fixes for methodRef dependencies and dependencies from generics
This commit is contained in:
parent
246e56c144
commit
19513d3310
1 changed files with 7 additions and 4 deletions
|
@ -3469,9 +3469,12 @@ void BfModule::AddDependency(BfType* usedType, BfType* userType, BfDependencyMap
|
||||||
if ((flags & (BfDependencyMap::DependencyFlag_MethodGenericArg | BfDependencyMap::DependencyFlag_TypeGenericArg)) != 0)
|
if ((flags & (BfDependencyMap::DependencyFlag_MethodGenericArg | BfDependencyMap::DependencyFlag_TypeGenericArg)) != 0)
|
||||||
depFlag = BfDependencyMap::DependencyFlag_GenericArgRef; // Will cause a rebuild but not an outright deletion of the type
|
depFlag = BfDependencyMap::DependencyFlag_GenericArgRef; // Will cause a rebuild but not an outright deletion of the type
|
||||||
|
|
||||||
auto underlyingType = usedType->GetUnderlyingType();
|
if (!usedType->IsGenericTypeInstance())
|
||||||
if (underlyingType != NULL)
|
{
|
||||||
AddDependency(underlyingType, userType, depFlag);
|
auto underlyingType = usedType->GetUnderlyingType();
|
||||||
|
if (underlyingType != NULL)
|
||||||
|
AddDependency(underlyingType, userType, depFlag);
|
||||||
|
}
|
||||||
|
|
||||||
BfDependedType* checkDType = usedType->ToDependedType();
|
BfDependedType* checkDType = usedType->ToDependedType();
|
||||||
if (checkDType == NULL)
|
if (checkDType == NULL)
|
||||||
|
@ -3491,7 +3494,7 @@ void BfModule::AddDependency(BfType* usedType, BfType* userType, BfDependencyMap
|
||||||
|
|
||||||
if (!checkDType->mDependencyMap.AddUsedBy(userType, flags))
|
if (!checkDType->mDependencyMap.AddUsedBy(userType, flags))
|
||||||
return;
|
return;
|
||||||
if (checkDType->IsGenericTypeInstance())
|
if ((checkDType->IsGenericTypeInstance()) && (!userType->IsMethodRef()))
|
||||||
{
|
{
|
||||||
auto genericTypeInstance = (BfTypeInstance*) checkDType;
|
auto genericTypeInstance = (BfTypeInstance*) checkDType;
|
||||||
for (auto genericArg : genericTypeInstance->mGenericTypeInfo->mTypeGenericArguments)
|
for (auto genericArg : genericTypeInstance->mGenericTypeInfo->mTypeGenericArguments)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue