Cleanup range printing
ghstack-source-id: 42c49348a93921fc03ec5defcf68a364952a3f88 Pull Request resolved: https://github.com/facebook/react-forget/pull/2829
Joe Savona committed
Apr 8, 2024 at 17:31 UTC
0c6fe1ba359af3dc75732ab7debcb9bb53124943
1 file changed
+14
-7
compiler/packages/babel-plugin-react-forget/src/HIR/PrintHIR.ts
+14
-7
@@ -633,15 +633,22 @@ function isMutable(range: MutableRange): boolean {
633
return range.end > range.start + 1;
634
}
635
636
+const DEBUG_MUTABLE_RANGES = false;
637
function printMutableRange(identifier: Identifier): string {
637
- const range = identifier.mutableRange;
638
- const scopeRange = identifier.scope?.range;
639
- if (
640
- scopeRange != null &&
641
- (scopeRange.start !== range.start || scopeRange.end !== range.end)
642
- ) {
643
- return `[${range.start}:${range.end}] scope=[${scopeRange.start}:${scopeRange.end}]`;
638
+ if (DEBUG_MUTABLE_RANGES) {
639
+ // if debugging, print both the identifier and scope range if they differ
640
+ const range = identifier.mutableRange;
641
+ const scopeRange = identifier.scope?.range;
642
+ if (
643
+ scopeRange != null &&
644
+ (scopeRange.start !== range.start || scopeRange.end !== range.end)
645
+ ) {
646
+ return `[${range.start}:${range.end}] scope=[${scopeRange.start}:${scopeRange.end}]`;
647
+ }
648
+ return isMutable(range) ? `[${range.start}:${range.end}]` : "";
649
}
650
+ // in non-debug mode, prefer the scope range if it exists
651
+ const range = identifier.scope?.range ?? identifier.mutableRange;
652
return isMutable(range) ? `[${range.start}:${range.end}]` : "";
653
}
654