1
0
Fork 0
mirror of https://github.com/beefytech/Beef.git synced 2025-06-10 04:22:20 +02:00

Optimizations, switching CanImplicitlyCast method, new CPU rate checker

This commit is contained in:
Brian Fiete 2019-11-19 09:58:35 -08:00
parent 39fd8d2624
commit 098ad1ce55
25 changed files with 759 additions and 301 deletions

View file

@ -1162,7 +1162,7 @@ BfLocalVariable* BfModule::HandleVariableDeclaration(BfVariableDeclaration* varD
BfLocalVariable* localDef = new BfLocalVariable();
if (varDecl->mNameNode != NULL)
{
localDef->mName = varDecl->mNameNode->ToString();
varDecl->mNameNode->ToString(localDef->mName);
localDef->mNameNode = BfNodeDynCast<BfIdentifierNode>(varDecl->mNameNode);
}
else
@ -1773,7 +1773,7 @@ BfLocalVariable* BfModule::HandleVariableDeclaration(BfVariableDeclaration* varD
BfLocalVariable* localDef = new BfLocalVariable();
if (varDecl->mNameNode != NULL)
localDef->mName = varDecl->mNameNode->ToString();
varDecl->mNameNode->ToString(localDef->mName);
localDef->mNameNode = BfNodeDynCast<BfIdentifierNode>(varDecl->mNameNode);
localDef->mResolvedType = type;
localDef->mIsAssigned = true;
@ -1906,7 +1906,7 @@ void BfModule::HandleTupleVariableDeclaration(BfVariableDeclaration* varDecl, Bf
bool initHandled = false;
BfLocalVariable* localDef = new BfLocalVariable();
localDef->mName = varNameNode->ToString();
varNameNode->ToString(localDef->mName);
localDef->mNameNode = BfNodeDynCast<BfIdentifierNode>(varNameNode);
localDef->mResolvedType = resolvedType;
localDef->mReadFromId = 0; // Don't give usage errors for binds
@ -2326,9 +2326,9 @@ BfTypedValue BfModule::TryCaseEnumMatch(BfTypedValue enumVal, BfTypedValue tagVa
auto enumType = targetType->ToTypeInstance();
PopulateType(enumType);
String enumCaseName;
StringT<128> enumCaseName;
if (nameNode != NULL)
enumCaseName = nameNode->ToString();
nameNode->ToString(enumCaseName);
auto tagType = GetPrimitiveType(BfTypeCode_Int32);
if (enumVal.mType != enumType)