1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-08 19:48:20 +02:00

Added 'in' parameter support

This commit is contained in:
Brian Fiete 2021-01-27 09:01:47 -08:00
parent bf97870ed4
commit 4d1672fbcf
8 changed files with 52 additions and 16 deletions

View file

@ -3297,6 +3297,8 @@ int BfResolvedTypeSet::Hash(BfTypeReference* typeRef, LookupContext* ctx, BfHash
auto refKind = BfRefType::RefKind_Ref;
if (refType->mRefToken == NULL)
refKind = BfRefType::RefKind_Ref;
else if (refType->mRefToken->GetToken() == BfToken_In)
refKind = BfRefType::RefKind_In;
else if (refType->mRefToken->GetToken() == BfToken_Out)
refKind = BfRefType::RefKind_Out;
else if (refType->mRefToken->GetToken() == BfToken_Mut)
@ -4176,6 +4178,8 @@ bool BfResolvedTypeSet::Equals(BfType* lhs, BfTypeReference* rhs, LookupContext*
auto refKind = BfRefType::RefKind_Ref;
if (rhsRefTypeRef->mRefToken == NULL)
refKind = BfRefType::RefKind_Ref;
else if (rhsRefTypeRef->mRefToken->GetToken() == BfToken_In)
refKind = BfRefType::RefKind_In;
else if (rhsRefTypeRef->mRefToken->GetToken() == BfToken_Out)
refKind = BfRefType::RefKind_Out;
else if (rhsRefTypeRef->mRefToken->GetToken() == BfToken_Mut)
@ -4612,8 +4616,10 @@ String BfTypeUtils::TypeToString(BfAstNode* typeRefNode)
}
if (auto refTypeRef = BfNodeDynCast<BfRefTypeRef>(typeRef))
{
return ((refTypeRef->mRefToken->GetToken() == BfToken_Out) ? "out " : "ref ") +
TypeToString(refTypeRef->mElementType);
String str = BfTokenToString(refTypeRef->mRefToken->GetToken());
str += " ";
str += TypeToString(refTypeRef->mElementType);
return str;
}
if (auto directStrTypeName = BfNodeDynCast<BfDirectStrTypeReference>(typeRef))
return directStrTypeName->mTypeName;