From 840a60697d834aa446ee90cf44d9622b536ecb4c Mon Sep 17 00:00:00 2001 From: Brian Fiete Date: Thu, 24 Dec 2020 11:32:19 -0800 Subject: [PATCH] Added string addition --- BeefLibs/corlib/src/String.bf | 38 ++++++++++++++++++++++++++ IDEHelper/Compiler/BfExprEvaluator.cpp | 3 ++ 2 files changed, 41 insertions(+) diff --git a/BeefLibs/corlib/src/String.bf b/BeefLibs/corlib/src/String.bf index 47eea6e0..70851248 100644 --- a/BeefLibs/corlib/src/String.bf +++ b/BeefLibs/corlib/src/String.bf @@ -941,6 +941,44 @@ namespace System } } + public void operator+=(String str) + { + Append(str); + } + + public void operator+=(StringView sv) + { + Append(sv); + } + + public void operator+=(char8 c) + { + Append(c); + } + + public void operator+=(char32 c) + { + Append(c); + } + + [Error("String addition is not supported. Consider allocating a new string and using Append, Concat, or +=")] + public static String operator+(String lhs, String rhs) + { + return lhs; + } + + [Error("String addition is not supported. Consider allocating a new string and using Append, Concat, or +=")] + public static String operator+(String lhs, StringView rhs) + { + return lhs; + } + + [Error("String addition is not supported. Consider allocating a new string and using Append, Concat, or +=")] + public static String operator+(String lhs, char32 rhs) + { + return lhs; + } + public void EnsureNullTerminator() { int allocSize = AllocSize; diff --git a/IDEHelper/Compiler/BfExprEvaluator.cpp b/IDEHelper/Compiler/BfExprEvaluator.cpp index 288b5e09..0ef22245 100644 --- a/IDEHelper/Compiler/BfExprEvaluator.cpp +++ b/IDEHelper/Compiler/BfExprEvaluator.cpp @@ -5528,6 +5528,9 @@ BfTypedValue BfExprEvaluator::CreateCall(BfMethodMatcher* methodMatcher, BfTyped BF_ASSERT(castedTarget); target = castedTarget; } + + PerformCallChecks(moduleMethodInstance.mMethodInstance, methodMatcher->mTargetSrc); + return CreateCall(methodMatcher->mTargetSrc, target, BfTypedValue(), methodMatcher->mBestMethodDef, moduleMethodInstance, false, methodMatcher->mArguments); }