diff --git a/IDE/src/BuildContext.bf b/IDE/src/BuildContext.bf index d0872d64..b53b73f6 100644 --- a/IDE/src/BuildContext.bf +++ b/IDE/src/BuildContext.bf @@ -576,8 +576,7 @@ namespace IDE IDEUtils.FixFilePath(llvmDir); llvmDir.Append("llvm/"); #else - String llvmDir = ""; - bool isWSL = false; + String llvmDir = ""; #endif if (!gApp.mSettings.mEmscriptenPath.IsEmpty) { diff --git a/IDE/src/ui/SourceViewPanel.bf b/IDE/src/ui/SourceViewPanel.bf index 5b048797..02193d0c 100644 --- a/IDE/src/ui/SourceViewPanel.bf +++ b/IDE/src/ui/SourceViewPanel.bf @@ -6159,7 +6159,7 @@ namespace IDE.ui } else { - // If we do a non-autocomple change that modifies a type signature, that will generate a Classify which detects + // If we do a non-autocomplete change that modifies a type signature, that will generate a Classify which detects // the signature change afterward, and then we need to do a full classify after that if (mWantsFullRefresh) mWantsFullClassify = true; diff --git a/IDEHelper/Compiler/BfAst.cpp b/IDEHelper/Compiler/BfAst.cpp index 8cf8e71a..3ce3a77b 100644 --- a/IDEHelper/Compiler/BfAst.cpp +++ b/IDEHelper/Compiler/BfAst.cpp @@ -1436,7 +1436,7 @@ const char* Beefy::BfTokenToString(BfToken token) case BfToken_XorEquals: return "^="; case BfToken_NullCoalsceEquals: - return "??="; + return "\?\?="; case BfToken_LBrace: return "{"; case BfToken_RBrace: diff --git a/IDEHelper/Compiler/BfAst.h b/IDEHelper/Compiler/BfAst.h index bce93a12..e66671f9 100644 --- a/IDEHelper/Compiler/BfAst.h +++ b/IDEHelper/Compiler/BfAst.h @@ -968,34 +968,6 @@ public: } }; -template -class BfDeferredAstNodeSizedArray : public SizedArray -{ -public: - BfAstNode* mParentNode; - BfSizedArray* mSizedArray; - BfAstAllocator* mAlloc; - -public: - BfDeferredAstNodeSizedArray(BfAstNode* parentNode, BfSizedArray& arr, BfAstAllocator* alloc) - { - mParentNode = parentNode; - mSizedArray = &arr; - mAlloc = alloc; - } - - ~BfDeferredAstNodeSizedArray() - { - BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc); - if (!this->mSizedArray->IsEmpty()) - { - int endPos = this->mSizedArray->back()->mSrcEnd; - if (endPos > this->mParentNode->mSrcEnd) - this->mParentNode->mSrcEnd = endPos; - } - } -}; - typedef void(*BfAstAcceptFunc)(BfAstNode* node, BfStructuralVisitor* visitor); class BfAstTypeInfo @@ -1515,6 +1487,34 @@ T* BfNodeDynCastExact(BfAstNode* node) BfIdentifierNode* BfIdentifierCast(BfAstNode* node); BfAstNode* BfNodeToNonTemporary(BfAstNode* node); +template +class BfDeferredAstNodeSizedArray : public SizedArray +{ +public: + BfAstNode* mParentNode; + BfSizedArray* mSizedArray; + BfAstAllocator* mAlloc; + +public: + BfDeferredAstNodeSizedArray(BfAstNode* parentNode, BfSizedArray& arr, BfAstAllocator* alloc) + { + mParentNode = parentNode; + mSizedArray = &arr; + mAlloc = alloc; + } + + ~BfDeferredAstNodeSizedArray() + { + BfSizedArrayInitIndirect(*mSizedArray, *this, mAlloc); + if (!this->mSizedArray->IsEmpty()) + { + int endPos = this->mSizedArray->back()->mSrcEnd; + if (endPos > this->mParentNode->mSrcEnd) + this->mParentNode->mSrcEnd = endPos; + } + } +}; + class BfStatement : public BfAstNode { public: diff --git a/IDEHelper/Compiler/BfAutoComplete.cpp b/IDEHelper/Compiler/BfAutoComplete.cpp index 44c3ac24..ea999683 100644 --- a/IDEHelper/Compiler/BfAutoComplete.cpp +++ b/IDEHelper/Compiler/BfAutoComplete.cpp @@ -3332,6 +3332,9 @@ void BfAutoComplete::FixitAddConstructor(BfTypeInstance *typeInstance) { case BfParamKind_Params: methodStr += "params "; + break; + default: + break; } methodStr += mModule->TypeToString(methodInstance->GetParamType(paramIdx), BfTypeNameFlag_ReduceName); methodStr += " "; @@ -3352,6 +3355,9 @@ void BfAutoComplete::FixitAddConstructor(BfTypeInstance *typeInstance) { case BfParamKind_Params: methodStr += "params "; + break; + default: + break; } auto paramType = methodInstance->GetParamType(paramIdx); diff --git a/IDEHelper/Compiler/BfDefBuilder.cpp b/IDEHelper/Compiler/BfDefBuilder.cpp index ebd16f1f..44d1e660 100644 --- a/IDEHelper/Compiler/BfDefBuilder.cpp +++ b/IDEHelper/Compiler/BfDefBuilder.cpp @@ -1689,7 +1689,7 @@ void BfDefBuilder::Visit(BfTypeDeclaration* typeDeclaration) int outerGenericSize = 0; if (mCurTypeDef->mOuterType != NULL) outerGenericSize = (int)mCurTypeDef->mOuterType->mGenericParamDefs.size(); - bool isGeneric = (outerGenericSize != NULL) || (typeDeclaration->mGenericParams != NULL); + bool isGeneric = (outerGenericSize != 0) || (typeDeclaration->mGenericParams != NULL); ParseGenericParams(typeDeclaration->mGenericParams, typeDeclaration->mGenericConstraintsDeclaration, mCurTypeDef->mGenericParamDefs, &mCurTypeDef->mExternalConstraints, outerGenericSize, isGeneric); BF_ASSERT(mCurTypeDef->mNameEx == NULL); diff --git a/IDEHelper/Compiler/BfMangler.cpp b/IDEHelper/Compiler/BfMangler.cpp index 19388bda..6ac0ac58 100644 --- a/IDEHelper/Compiler/BfMangler.cpp +++ b/IDEHelper/Compiler/BfMangler.cpp @@ -639,7 +639,7 @@ void BfGNUMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType } if ((val >= 1) && (val < 10)) { - val += (char)('0' + val - 1); + name += (char)('0' + val - 1); } else { @@ -649,7 +649,7 @@ void BfGNUMangler::Mangle(MangleContext& mangleContext, StringImpl& name, BfType while (val > 0) { - *(strP--) = (char)((val % 0x10) + 'A'); + *(--strP) = (char)((val % 0x10) + 'A'); val /= 0x10; } diff --git a/IDEHelper/Compiler/BfModule.cpp b/IDEHelper/Compiler/BfModule.cpp index d4c57e36..7b512386 100644 --- a/IDEHelper/Compiler/BfModule.cpp +++ b/IDEHelper/Compiler/BfModule.cpp @@ -10954,6 +10954,7 @@ BfVariant BfModule::TypedValueToVariant(BfAstNode* refNode, const BfTypedValue& { if ((allowUndef) && (constant->mConstType == BfConstType_Undef)) { + variant.mUInt64 = 0; variant.mTypeCode = BfTypeCode_Let; return variant; }