Skip to content

Commit 26a17bb

Browse files
committed
Use IntFixnumLiteralNode instead of LongFixnumLiteralNode where possible in visitRationalNode
1 parent c504fd4 commit 26a17bb

File tree

8 files changed

+29
-23
lines changed

8 files changed

+29
-23
lines changed

spec/truffle/parsing/fixtures/complex_numbers/with_float_rational_imaginary_part.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,11 +45,11 @@ ast: |
4545
ruby2KeywordsHashProfile = false
4646
children:
4747
arguments = [
48-
LongFixnumLiteralNode
48+
IntegerFixnumLiteralNode
4949
attributes:
5050
flags = 0
5151
value = 314
52-
LongFixnumLiteralNode
52+
IntegerFixnumLiteralNode
5353
attributes:
5454
flags = 0
5555
value = 100

spec/truffle/parsing/fixtures/complex_numbers/with_integer_rational_imaginary_part.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ ast: |
4444
ruby2KeywordsHashProfile = false
4545
children:
4646
arguments = [
47-
LongFixnumLiteralNode
47+
IntegerFixnumLiteralNode
4848
attributes:
4949
flags = 0
5050
value = 42
51-
LongFixnumLiteralNode
51+
IntegerFixnumLiteralNode
5252
attributes:
5353
flags = 0
5454
value = 1

spec/truffle/parsing/fixtures/rational_numbers/with_float_point_value.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ ast: |
2424
ruby2KeywordsHashProfile = false
2525
children:
2626
arguments = [
27-
LongFixnumLiteralNode
27+
IntegerFixnumLiteralNode
2828
attributes:
2929
flags = 0
3030
value = 42100500
31-
LongFixnumLiteralNode
31+
IntegerFixnumLiteralNode
3232
attributes:
3333
flags = 0
3434
value = 1000000

spec/truffle/parsing/fixtures/rational_numbers/with_integer_value.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ ast: |
2424
ruby2KeywordsHashProfile = false
2525
children:
2626
arguments = [
27-
LongFixnumLiteralNode
27+
IntegerFixnumLiteralNode
2828
attributes:
2929
flags = 0
3030
value = 42
31-
LongFixnumLiteralNode
31+
IntegerFixnumLiteralNode
3232
attributes:
3333
flags = 0
3434
value = 1

spec/truffle/parsing/fixtures/rational_numbers/with_negative_value.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,11 @@ ast: |
2424
ruby2KeywordsHashProfile = false
2525
children:
2626
arguments = [
27-
LongFixnumLiteralNode
27+
IntegerFixnumLiteralNode
2828
attributes:
2929
flags = 0
3030
value = -42
31-
LongFixnumLiteralNode
31+
IntegerFixnumLiteralNode
3232
attributes:
3333
flags = 0
3434
value = 1

spec/truffle/parsing/fixtures/rescue/backtrace_optimization/enabled/when_rational_literal.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ ast: |
4141
ruby2KeywordsHashProfile = false
4242
children:
4343
arguments = [
44-
LongFixnumLiteralNode
44+
IntegerFixnumLiteralNode
4545
attributes:
4646
flags = 0
4747
value = 42
48-
LongFixnumLiteralNode
48+
IntegerFixnumLiteralNode
4949
attributes:
5050
flags = 0
5151
value = 1

spec/truffle/parsing/fixtures/rescue/modifier/backtrace_optimization/enabled/when_rational_literal.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,11 +37,11 @@ ast: |
3737
ruby2KeywordsHashProfile = false
3838
children:
3939
arguments = [
40-
LongFixnumLiteralNode
40+
IntegerFixnumLiteralNode
4141
attributes:
4242
flags = 0
4343
value = 42
44-
LongFixnumLiteralNode
44+
IntegerFixnumLiteralNode
4545
attributes:
4646
flags = 0
4747
value = 1

src/main/java/org/truffleruby/parser/BodyTranslator.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1482,16 +1482,18 @@ public RubyNode visitFalseNode(FalseParseNode node) {
14821482
public RubyNode visitFixnumNode(FixnumParseNode node) {
14831483
final SourceIndexLength sourceSection = node.getPosition();
14841484
final long value = node.getValue();
1485-
final RubyNode ret;
1485+
final RubyNode ret = integerOrLongLiteralNode(value);
1486+
1487+
ret.unsafeSetSourceSection(sourceSection);
1488+
return addNewlineIfNeeded(node, ret);
1489+
}
14861490

1491+
private RubyNode integerOrLongLiteralNode(long value) {
14871492
if (CoreLibrary.fitsIntoInteger(value)) {
1488-
ret = new IntegerFixnumLiteralNode((int) value);
1493+
return new IntegerFixnumLiteralNode((int) value);
14891494
} else {
1490-
ret = new LongFixnumLiteralNode(value);
1495+
return new LongFixnumLiteralNode(value);
14911496
}
1492-
ret.unsafeSetSourceSection(sourceSection);
1493-
1494-
return addNewlineIfNeeded(node, ret);
14951497
}
14961498

14971499
@Override
@@ -2537,13 +2539,17 @@ public RubyNode visitPostExeNode(PostExeParseNode node) {
25372539
public RubyNode visitRationalNode(RationalParseNode node) {
25382540
final SourceIndexLength sourceSection = node.getPosition();
25392541

2540-
// TODO(CS): use IntFixnumLiteralNode where possible
2542+
long numerator = node.getNumerator();
2543+
final RubyNode numeratorNode = integerOrLongLiteralNode(numerator);
2544+
2545+
long denominator = node.getDenominator();
2546+
final RubyNode denominatorNode = integerOrLongLiteralNode(denominator);
25412547

25422548
final RubyNode ret = translateRationalComplex(
25432549
sourceSection,
25442550
"Rational",
2545-
new LongFixnumLiteralNode(node.getNumerator()),
2546-
new LongFixnumLiteralNode(node.getDenominator()));
2551+
numeratorNode,
2552+
denominatorNode);
25472553

25482554
return addNewlineIfNeeded(node, ret);
25492555
}

0 commit comments

Comments
 (0)