mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-08 19:48: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)
|
if (tempTypeDef->mTypeCode == BfTypeCode_Extension)
|
||||||
{
|
{
|
||||||
BfTypeInstance* outerTypeInstance = NULL;
|
BfTypeInstance* outerTypeInstance = NULL;
|
||||||
|
|
||||||
if (tempTypeDef->mOuterType != NULL)
|
if (tempTypeDef->mOuterType != NULL)
|
||||||
|
@ -3928,6 +3928,9 @@ void BfCompiler::ProcessAutocompleteTempType()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (tempTypeDef->mTypeCode == BfTypeCode_Extension)
|
||||||
|
mResolvePassData->mSourceClassifier->SetElementType(tempTypeDef->mTypeDeclaration->mNameNode, actualTypeDef->mTypeCode);
|
||||||
|
|
||||||
if (tempTypeDef->mTypeDeclaration->mAttributes != NULL)
|
if (tempTypeDef->mTypeDeclaration->mAttributes != NULL)
|
||||||
{
|
{
|
||||||
mResolvePassData->mSourceClassifier->VisitChild(tempTypeDef->mTypeDeclaration->mAttributes);
|
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)
|
void BfSourceClassifier::SetHighestElementType(int startPos, int endPos, BfSourceElementType elementType)
|
||||||
{
|
{
|
||||||
if (!mEnabled)
|
if (!mEnabled)
|
||||||
|
|
|
@ -73,6 +73,7 @@ public:
|
||||||
void ModifyFlags(BfAstNode* node, uint8 andFlags, uint8 orFlags);
|
void ModifyFlags(BfAstNode* node, uint8 andFlags, uint8 orFlags);
|
||||||
void ModifyFlags(int startPos, int endPos, uint8 andFlags, uint8 orFlags);
|
void ModifyFlags(int startPos, int endPos, uint8 andFlags, uint8 orFlags);
|
||||||
void SetElementType(BfAstNode* node, BfSourceElementType elementType);
|
void SetElementType(BfAstNode* node, BfSourceElementType elementType);
|
||||||
|
void SetElementType(BfAstNode* node, BfTypeCode typeCode);
|
||||||
void SetElementType(int startPos, int endPos, BfSourceElementType elementType);
|
void SetElementType(int startPos, int endPos, BfSourceElementType elementType);
|
||||||
void SetHighestElementType(BfAstNode* node, BfSourceElementType elementType);
|
void SetHighestElementType(BfAstNode* node, BfSourceElementType elementType);
|
||||||
void SetHighestElementType(int startPos, int endPos, BfSourceElementType elementType);
|
void SetHighestElementType(int startPos, int endPos, BfSourceElementType elementType);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue