mirror of
https://github.com/beefytech/Beef.git
synced 2025-06-14 14:24:10 +02:00
Removed sized array initialization from tuples
This commit is contained in:
parent
bb34a468bb
commit
5bed292e87
7 changed files with 24 additions and 40 deletions
|
@ -109,7 +109,7 @@ namespace System
|
||||||
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
|
||||||
};*/
|
};*/
|
||||||
|
|
||||||
private static uint64[2048] MantissaBitsTable = (
|
private static uint64[2048] MantissaBitsTable = .(
|
||||||
4556951262222748432UL, 9113902524445496865UL, 1822780504889099373UL,
|
4556951262222748432UL, 9113902524445496865UL, 1822780504889099373UL,
|
||||||
3645561009778198746UL, 7291122019556397492UL, 14582244039112794984UL,
|
3645561009778198746UL, 7291122019556397492UL, 14582244039112794984UL,
|
||||||
2916448807822558996UL, 5832897615645117993UL, 11665795231290235987UL,
|
2916448807822558996UL, 5832897615645117993UL, 11665795231290235987UL,
|
||||||
|
@ -794,7 +794,7 @@ namespace System
|
||||||
4602094425247528723UL, 9204188850495057447UL, 1840837770099011489UL,
|
4602094425247528723UL, 9204188850495057447UL, 1840837770099011489UL,
|
||||||
3681675540198022979UL, 7363351080396045958UL);
|
3681675540198022979UL, 7363351080396045958UL);
|
||||||
|
|
||||||
private static int32[2048] TensExponentTable = (
|
private static int32[2048] TensExponentTable = .(
|
||||||
-323, -323, -322, -322, -322, -322, -321, -321, -321, -320, -320, -320,
|
-323, -323, -322, -322, -322, -322, -321, -321, -321, -320, -320, -320,
|
||||||
-319, -319, -319, -319, -318, -318, -318, -317, -317, -317, -316, -316,
|
-319, -319, -319, -319, -318, -318, -318, -317, -317, -317, -316, -316,
|
||||||
-316, -316, -315, -315, -315, -314, -314, -314, -313, -313, -313, -313,
|
-316, -316, -315, -315, -315, -314, -314, -314, -313, -313, -313, -313,
|
||||||
|
@ -966,9 +966,9 @@ namespace System
|
||||||
284, 284, 284, 285, 285, 285, 286, 286, 286, 286, 287, 287,
|
284, 284, 284, 285, 285, 285, 286, 286, 286, 286, 287, 287,
|
||||||
287, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 291,
|
287, 288, 288, 288, 289, 289, 289, 289, 290, 290, 290, 291,
|
||||||
291, 291, 292, 292, 292, 293, 293, 293 );
|
291, 291, 292, 292, 292, 293, 293, 293 );
|
||||||
private static char8[16] DigitLowerTable = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
|
private static char8[16] DigitLowerTable = .('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f');
|
||||||
private static char8[16] DigitUpperTable = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
|
private static char8[16] DigitUpperTable = .('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');
|
||||||
private static int64[19] TenPowersList = (
|
private static int64[19] TenPowersList = .(
|
||||||
1L,
|
1L,
|
||||||
10L,
|
10L,
|
||||||
100L,
|
100L,
|
||||||
|
@ -991,7 +991,7 @@ namespace System
|
||||||
|
|
||||||
// DecHexDigits s a translation table from a decimal number to its
|
// DecHexDigits s a translation table from a decimal number to its
|
||||||
// digits hexadecimal representation (e.g. DecHexDigits [34] = 0x34).
|
// digits hexadecimal representation (e.g. DecHexDigits [34] = 0x34).
|
||||||
private static int32[100] DecHexDigits = (
|
private static int32[100] DecHexDigits = .(
|
||||||
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
|
0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09,
|
||||||
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
|
0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19,
|
||||||
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
|
0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29,
|
||||||
|
@ -2749,7 +2749,7 @@ namespace System
|
||||||
|
|
||||||
public static void GetActiveSection (StringView format, ref bool positive, bool zero, ref int32 offset, ref int32 length)
|
public static void GetActiveSection (StringView format, ref bool positive, bool zero, ref int32 offset, ref int32 length)
|
||||||
{
|
{
|
||||||
int32[3] lens = (0,);
|
int32[3] lens = .(0,);
|
||||||
int32 index = 0;
|
int32 index = 0;
|
||||||
int32 lastPos = 0;
|
int32 lastPos = 0;
|
||||||
bool quoted = false;
|
bool quoted = false;
|
||||||
|
|
|
@ -86,7 +86,7 @@ namespace System.Security.Cryptography
|
||||||
(ROTRIGHT!(x,17) ^ ROTRIGHT!(x,19) ^ ((x) >> 10))
|
(ROTRIGHT!(x,17) ^ ROTRIGHT!(x,19) ^ ((x) >> 10))
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint32[64] k = (
|
const uint32[64] k = .(
|
||||||
0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,
|
0x428a2f98,0x71374491,0xb5c0fbcf,0xe9b5dba5,0x3956c25b,0x59f111f1,0x923f82a4,0xab1c5ed5,
|
||||||
0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,
|
0xd807aa98,0x12835b01,0x243185be,0x550c7dc3,0x72be5d74,0x80deb1fe,0x9bdc06a7,0xc19bf174,
|
||||||
0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,
|
0xe49b69c1,0xefbe4786,0x0fc19dc6,0x240ca1cc,0x2de92c6f,0x4a7484aa,0x5cb0a9dc,0x76f988da,
|
||||||
|
|
|
@ -31,10 +31,9 @@ namespace IDE.ui
|
||||||
mSelection = EditSelection(lineStart, lineEnd);
|
mSelection = EditSelection(lineStart, lineEnd);
|
||||||
var selectionText = scope String();
|
var selectionText = scope String();
|
||||||
GetSelectionText(selectionText);
|
GetSelectionText(selectionText);
|
||||||
//if (selectionText.Length > 512)
|
|
||||||
//return false;
|
|
||||||
|
|
||||||
//int idx = selectionText.IndexOf("line ");
|
if (selectionText.Length > 1024) // Remove middle
|
||||||
|
selectionText.Remove(1024/2, selectionText.Length - 1024);
|
||||||
|
|
||||||
int32 errLine = 0;
|
int32 errLine = 0;
|
||||||
int32 errLineChar = 0;
|
int32 errLineChar = 0;
|
||||||
|
@ -50,7 +49,7 @@ namespace IDE.ui
|
||||||
|
|
||||||
int32 inTextPos = -1;
|
int32 inTextPos = -1;
|
||||||
|
|
||||||
for (int32 i = 1; i < Math.Min(512, selectionText.Length); i++)
|
for (int32 i = 1; i < selectionText.Length; i++)
|
||||||
{
|
{
|
||||||
if (success)
|
if (success)
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -15554,16 +15554,7 @@ void BfExprEvaluator::InitializedSizedArray(BfSizedArrayType* arrayType, BfToken
|
||||||
}
|
}
|
||||||
|
|
||||||
void BfExprEvaluator::Visit(BfTupleExpression* tupleExpr)
|
void BfExprEvaluator::Visit(BfTupleExpression* tupleExpr)
|
||||||
{
|
{
|
||||||
if (mExpectingType != NULL)
|
|
||||||
{
|
|
||||||
if (mExpectingType->IsSizedArray())
|
|
||||||
{
|
|
||||||
InitializedSizedArray((BfSizedArrayType*)mExpectingType, tupleExpr->mOpenParen, tupleExpr->mValues, tupleExpr->mCommas, tupleExpr->mCloseParen);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
BfTupleType* tupleType = NULL;
|
BfTupleType* tupleType = NULL;
|
||||||
bool hadFullMatch = false;
|
bool hadFullMatch = false;
|
||||||
if ((mExpectingType != NULL) && (mExpectingType->IsTuple()))
|
if ((mExpectingType != NULL) && (mExpectingType->IsTuple()))
|
||||||
|
|
|
@ -2415,7 +2415,7 @@ void BfIRBuilder::CreateDbgTypeDefinition(BfType* type)
|
||||||
bool useIntConstant = false;
|
bool useIntConstant = false;
|
||||||
|
|
||||||
bool wasMadeAddr = false;
|
bool wasMadeAddr = false;
|
||||||
|
|
||||||
String fieldName = fieldDef->mName;
|
String fieldName = fieldDef->mName;
|
||||||
BfIRValue intConstant;
|
BfIRValue intConstant;
|
||||||
if (constant != NULL)
|
if (constant != NULL)
|
||||||
|
@ -2424,7 +2424,8 @@ void BfIRBuilder::CreateDbgTypeDefinition(BfType* type)
|
||||||
if (isOptimized)
|
if (isOptimized)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (constant->mConstType == BfConstType_Array)
|
if ((constant->mConstType == BfConstType_Array) ||
|
||||||
|
(constant->mConstType == BfConstType_AggZero))
|
||||||
{
|
{
|
||||||
staticValue = ConstToMemory(staticValue);
|
staticValue = ConstToMemory(staticValue);
|
||||||
wasMadeAddr = true;
|
wasMadeAddr = true;
|
||||||
|
|
|
@ -2436,7 +2436,8 @@ int BfResolvedTypeSet::Hash(BfTypeReference* typeRef, LookupContext* ctx, BfHash
|
||||||
{
|
{
|
||||||
if ((arrayType->mDimensions == 1) && (arrayType->mParams.size() != 0))
|
if ((arrayType->mDimensions == 1) && (arrayType->mParams.size() != 0))
|
||||||
{
|
{
|
||||||
int elemHash = Hash(arrayType->mElementType, ctx) ^ HASH_SIZED_ARRAY;
|
int rawElemHash = Hash(arrayType->mElementType, ctx);
|
||||||
|
int elemHash = rawElemHash ^ HASH_SIZED_ARRAY;
|
||||||
int hashVal = (elemHash << 5) - elemHash;
|
int hashVal = (elemHash << 5) - elemHash;
|
||||||
|
|
||||||
// Sized array
|
// Sized array
|
||||||
|
@ -2460,25 +2461,15 @@ int BfResolvedTypeSet::Hash(BfTypeReference* typeRef, LookupContext* ctx, BfHash
|
||||||
if (typedVal.mKind == BfTypedValueKind_GenericConstValue)
|
if (typedVal.mKind == BfTypedValueKind_GenericConstValue)
|
||||||
{
|
{
|
||||||
int elemHash = Hash(typedVal.mType, ctx);
|
int elemHash = Hash(typedVal.mType, ctx);
|
||||||
|
|
||||||
/*BF_ASSERT(typedVal.mType->IsGenericParam());
|
|
||||||
auto genericParamInstance = ctx->mModule->GetGenericParamInstance((BfGenericParamType*)typedVal.mType);
|
|
||||||
if ((genericParamInstance->mTypeConstraint == NULL) ||
|
|
||||||
(!ctx->mModule->CanCast(BfTypedValue(ctx->mModule->mBfIRBuilder->GetFakeVal(), genericParamInstance->mTypeConstraint),
|
|
||||||
ctx->mModule->GetPrimitiveType(BfTypeCode_IntPtr))))
|
|
||||||
{
|
|
||||||
ctx->mModule->Fail(StrFormat("Generic constraint '%s' is not convertible to 'int'", ctx->mModule->TypeToString(typedVal.mType).c_str()), sizeExpr);
|
|
||||||
}*/
|
|
||||||
|
|
||||||
hashVal = ((hashVal ^ elemHash) << 5) - hashVal;
|
hashVal = ((hashVal ^ elemHash) << 5) - hashVal;
|
||||||
return hashVal;
|
return hashVal;
|
||||||
}
|
}
|
||||||
if (!typedVal)
|
if (!typedVal)
|
||||||
ctx->mFailed = true;
|
ctx->mFailed = true;
|
||||||
if (typedVal)
|
if (typedVal)
|
||||||
typedVal = ctx->mModule->Cast(sizeExpr, typedVal, intType);
|
typedVal = ctx->mModule->Cast(sizeExpr, typedVal, intType);
|
||||||
if (typedVal)
|
if (typedVal)
|
||||||
{
|
{
|
||||||
auto constant = ctx->mModule->mBfIRBuilder->GetConstant(typedVal.mValue);
|
auto constant = ctx->mModule->mBfIRBuilder->GetConstant(typedVal.mValue);
|
||||||
if (constant->mConstType == BfConstType_Undef)
|
if (constant->mConstType == BfConstType_Undef)
|
||||||
{
|
{
|
||||||
|
@ -3133,6 +3124,8 @@ bool BfResolvedTypeSet::Equals(BfType* lhs, BfTypeReference* rhs, LookupContext*
|
||||||
auto rhsArrayTypeRef = BfNodeDynCastExact<BfArrayTypeRef>(rhs);
|
auto rhsArrayTypeRef = BfNodeDynCastExact<BfArrayTypeRef>(rhs);
|
||||||
if (rhsArrayTypeRef == NULL)
|
if (rhsArrayTypeRef == NULL)
|
||||||
return false;
|
return false;
|
||||||
|
if (!rhsArrayTypeRef->mParams.IsEmpty())
|
||||||
|
return false;
|
||||||
BfArrayType* lhsArrayType = (BfArrayType*) lhs;
|
BfArrayType* lhsArrayType = (BfArrayType*) lhs;
|
||||||
if (lhsArrayType->mDimensions != rhsArrayTypeRef->mDimensions)
|
if (lhsArrayType->mDimensions != rhsArrayTypeRef->mDimensions)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -2247,15 +2247,15 @@ public:
|
||||||
BfHashFlag_AllowRef = 1,
|
BfHashFlag_AllowRef = 1,
|
||||||
BfHashFlag_AllowGenericParamConstValue = 2
|
BfHashFlag_AllowGenericParamConstValue = 2
|
||||||
};
|
};
|
||||||
|
|
||||||
class LookupContext
|
class LookupContext
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
BfModule* mModule;
|
BfModule* mModule;
|
||||||
BfTypeReference* mRootTypeRef;
|
BfTypeReference* mRootTypeRef;
|
||||||
BfTypeDef* mRootTypeDef;
|
BfTypeDef* mRootTypeDef;
|
||||||
BfType* mResolvedType;
|
BfType* mResolvedType;
|
||||||
bool mFailed;
|
bool mFailed;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
LookupContext()
|
LookupContext()
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue