mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 03:28:20 +02:00
Extension classifier fix
This commit is contained in:
parent
f008a98105
commit
95c876570f
3 changed files with 15 additions and 1 deletions
|
@ -3894,7 +3894,7 @@ void BfCompiler::ProcessAutocompleteTempType()
|
|||
};
|
||||
|
||||
if (tempTypeDef->mTypeCode == BfTypeCode_Extension)
|
||||
{
|
||||
{
|
||||
BfTypeInstance* outerTypeInstance = NULL;
|
||||
|
||||
if (tempTypeDef->mOuterType != NULL)
|
||||
|
@ -3928,6 +3928,9 @@ void BfCompiler::ProcessAutocompleteTempType()
|
|||
return;
|
||||
}
|
||||
|
||||
if (tempTypeDef->mTypeCode == BfTypeCode_Extension)
|
||||
mResolvePassData->mSourceClassifier->SetElementType(tempTypeDef->mTypeDeclaration->mNameNode, actualTypeDef->mTypeCode);
|
||||
|
||||
if (tempTypeDef->mTypeDeclaration->mAttributes != NULL)
|
||||
{
|
||||
mResolvePassData->mSourceClassifier->VisitChild(tempTypeDef->mTypeDeclaration->mAttributes);
|
||||
|
|
|
@ -47,6 +47,16 @@ void BfSourceClassifier::SetElementType(BfAstNode* node, BfSourceElementType ele
|
|||
}
|
||||
}
|
||||
|
||||
void BfSourceClassifier::SetElementType(BfAstNode * node, BfTypeCode typeCode)
|
||||
{
|
||||
BfSourceElementType elemType = BfSourceElementType_Type;
|
||||
if (typeCode == BfTypeCode_Interface)
|
||||
elemType = BfSourceElementType_Interface;
|
||||
else if (typeCode == BfTypeCode_Object)
|
||||
elemType = BfSourceElementType_RefType;
|
||||
SetElementType(node, elemType);
|
||||
}
|
||||
|
||||
void BfSourceClassifier::SetHighestElementType(int startPos, int endPos, BfSourceElementType elementType)
|
||||
{
|
||||
if (!mEnabled)
|
||||
|
|
|
@ -73,6 +73,7 @@ public:
|
|||
void ModifyFlags(BfAstNode* node, uint8 andFlags, uint8 orFlags);
|
||||
void ModifyFlags(int startPos, int endPos, uint8 andFlags, uint8 orFlags);
|
||||
void SetElementType(BfAstNode* node, BfSourceElementType elementType);
|
||||
void SetElementType(BfAstNode* node, BfTypeCode typeCode);
|
||||
void SetElementType(int startPos, int endPos, BfSourceElementType elementType);
|
||||
void SetHighestElementType(BfAstNode* node, BfSourceElementType elementType);
|
||||
void SetHighestElementType(int startPos, int endPos, BfSourceElementType elementType);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue