| 2431 | } |
| 2432 | |
| 2433 | bool 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 | |
| 2470 | bool BfSystem::DoesLiteralFit(BfTypeCode typeCode, uint64 value) |
| 2471 | { |
no outgoing calls
no test coverage detected