mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-09 03:52:19 +02:00
Fixed inner type lookup within generic base type
This commit is contained in:
parent
086b5f2e7d
commit
ccacf0b9db
1 changed files with 5 additions and 3 deletions
|
@ -5979,6 +5979,7 @@ BfType* BfModule::ResolveInnerType(BfType* outerType, BfTypeReference* typeRef,
|
|||
|
||||
BF_ASSERT((namedTypeRef != NULL) || (directStrTypeRef != NULL));
|
||||
|
||||
auto usedOuterType = outerType;
|
||||
if (nestedTypeDef == NULL)
|
||||
{
|
||||
StringView findName;
|
||||
|
@ -6026,6 +6027,7 @@ BfType* BfModule::ResolveInnerType(BfType* outerType, BfTypeReference* typeRef,
|
|||
Fail(StrFormat("'%s.%s' is inaccessible due to its protection level", TypeToString(checkOuterType).c_str(), BfTypeUtils::TypeToString(typeRef).c_str()), typeRef); // CS0122
|
||||
}
|
||||
|
||||
usedOuterType = checkOuterType;
|
||||
nestedTypeDef = checkType;
|
||||
break;
|
||||
}
|
||||
|
@ -6054,12 +6056,12 @@ BfType* BfModule::ResolveInnerType(BfType* outerType, BfTypeReference* typeRef,
|
|||
}
|
||||
|
||||
SetAndRestoreValue<bool> prevIgnoreErrors(mIgnoreErrors, ignoreErrors || mIgnoreErrors);
|
||||
if ((genericTypeRef != NULL) || (outerType->IsGenericTypeInstance()))
|
||||
if ((genericTypeRef != NULL) || (usedOuterType->IsGenericTypeInstance()))
|
||||
{
|
||||
BfTypeVector genericArgs;
|
||||
if (outerType->IsGenericTypeInstance())
|
||||
if (usedOuterType->IsGenericTypeInstance())
|
||||
{
|
||||
auto genericTypeInst = (BfTypeInstance*)outerType;
|
||||
auto genericTypeInst = (BfTypeInstance*)usedOuterType;
|
||||
genericArgs = genericTypeInst->mGenericTypeInfo->mTypeGenericArguments;
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue