MCPcopy Create free account
hub / github.com/beefytech/Beef / DoesLiteralFit

Method DoesLiteralFit

IDEHelper/Compiler/BfSystem.cpp:2433–2468  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2431}
2432
2433bool BfSystem::DoesLiteralFit(BfTypeCode typeCode, int64 value)
2434{
2435 if (typeCode == BfTypeCode_IntPtr)
2436 typeCode = (mPtrSize == 4) ? BfTypeCode_Int32 : BfTypeCode_Int64;
2437 if (typeCode == BfTypeCode_UIntPtr)
2438 typeCode = (mPtrSize == 4) ? BfTypeCode_UInt32 : BfTypeCode_UInt64;
2439
2440 switch (typeCode)
2441 {
2442 case BfTypeCode_Boolean:
2443 return (value >= 0) && (value < 1);
2444 case BfTypeCode_Int8:
2445 return (value >= -0x80) && (value < 0x80);
2446 case BfTypeCode_Int16:
2447 return (value >= -0x8000) && (value < 0x8000);
2448 case BfTypeCode_Int32:
2449 return (value >= -0x80000000LL) && (value < 0x80000000LL);
2450 case BfTypeCode_Int64:
2451 return true;
2452
2453 case BfTypeCode_UInt8:
2454 case BfTypeCode_Char8:
2455 return (value >= 0) && (value < 0x100);
2456 case BfTypeCode_UInt16:
2457 case BfTypeCode_Char16:
2458 return (value >= 0) && (value < 0x10000);
2459 case BfTypeCode_UInt32:
2460 case BfTypeCode_Char32:
2461 return (value >= 0) && (value < 0x100000000LL);
2462 case BfTypeCode_UInt64:
2463 return (value >= 0);
2464 default: break;
2465 }
2466
2467 return false;
2468}
2469
2470bool BfSystem::DoesLiteralFit(BfTypeCode typeCode, uint64 value)
2471{

Callers 3

GetLiteralMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected