@@ -712,7 +712,7 @@ module Array {
712712 ElementReferenceRangeReadKnownSummary ( ) {
713713 mc .getNumberOfArguments ( ) = 2 and
714714 start = getKnownArrayElementContent ( mc .getArgument ( 0 ) ) .getIndex ( ) and
715- exists ( int length | length = mc .getArgument ( 1 ) .getValueText ( ) .toInt ( ) |
715+ exists ( int length | length = mc .getArgument ( 1 ) .getConstantValue ( ) .getInt ( ) |
716716 end = ( start + length - 1 ) and
717717 this = "[](" + start + ", " + length + ")"
718718 )
@@ -722,14 +722,14 @@ module Array {
722722 rl = mc .getArgument ( 0 ) and
723723 (
724724 // Either an explicit, positive beginning index...
725- start = rl .getBegin ( ) .getValueText ( ) .toInt ( ) and start >= 0
725+ start = rl .getBegin ( ) .getConstantValue ( ) .getInt ( ) and start >= 0
726726 or
727727 // Or a begin-less one, since `..n` is equivalent to `0..n`
728728 not exists ( rl .getBegin ( ) ) and start = 0
729729 ) and
730730 // There must be an explicit end. An end-less range like `2..` is not
731731 // treated as a known range, since we don't track the length of the array.
732- exists ( int e | e = rl .getEnd ( ) .getValueText ( ) .toInt ( ) and e >= 0 |
732+ exists ( int e | e = rl .getEnd ( ) .getConstantValue ( ) .getInt ( ) and e >= 0 |
733733 rl .isInclusive ( ) and end = e
734734 or
735735 rl .isExclusive ( ) and end = e - 1
@@ -762,16 +762,16 @@ module Array {
762762 (
763763 mc .getNumberOfArguments ( ) = 2 and
764764 (
765- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) ) or
766- not exists ( mc .getArgument ( 1 ) .getValueText ( ) .toInt ( ) )
765+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) ) or
766+ not exists ( mc .getArgument ( 1 ) .getConstantValue ( ) .getInt ( ) )
767767 )
768768 or
769769 mc .getNumberOfArguments ( ) = 1 and
770770 exists ( RangeLiteral rl | rl = mc .getArgument ( 0 ) |
771771 exists ( rl .getBegin ( ) ) and
772- not exists ( int b | b = rl .getBegin ( ) .getValueText ( ) .toInt ( ) and b >= 0 )
772+ not exists ( int b | b = rl .getBegin ( ) .getConstantValue ( ) .getInt ( ) and b >= 0 )
773773 or
774- not exists ( int e | e = rl .getEnd ( ) .getValueText ( ) .toInt ( ) and e >= 0 )
774+ not exists ( int e | e = rl .getEnd ( ) .getConstantValue ( ) .getInt ( ) and e >= 0 )
775775 )
776776 )
777777 }
@@ -1234,7 +1234,7 @@ module Array {
12341234
12351235 InsertKnownSummary ( ) {
12361236 this = "insert(" + i + ")" and
1237- i = mc .getArgument ( 0 ) .getValueText ( ) .toInt ( )
1237+ i = mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( )
12381238 }
12391239
12401240 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -1275,7 +1275,7 @@ module Array {
12751275 private class InsertUnknownSummary extends InsertSummary {
12761276 InsertUnknownSummary ( ) {
12771277 this = "insert(index)" and
1278- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) )
1278+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) )
12791279 }
12801280
12811281 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -1552,7 +1552,7 @@ module Array {
15521552 private int c ;
15531553
15541554 RotateKnownSummary ( ) {
1555- c = mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) and
1555+ c = mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) and
15561556 this = "rotate(" + c + ")"
15571557 or
15581558 not exists ( mc .getArgument ( 0 ) ) and c = 1 and this = "rotate"
@@ -1580,7 +1580,7 @@ module Array {
15801580 RotateUnknownSummary ( ) {
15811581 this = "rotate(index)" and
15821582 exists ( mc .getArgument ( 0 ) ) and
1583- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) )
1583+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) )
15841584 }
15851585
15861586 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -1608,7 +1608,7 @@ module Array {
16081608 private int c ;
16091609
16101610 RotateBangKnownSummary ( ) {
1611- c = mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) and
1611+ c = mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) and
16121612 this = "rotate!(" + c + ")"
16131613 or
16141614 not exists ( mc .getArgument ( 0 ) ) and c = 1 and this = "rotate!"
@@ -1635,7 +1635,7 @@ module Array {
16351635 RotateBangUnknownSummary ( ) {
16361636 this = "rotate!(index)" and
16371637 exists ( mc .getArgument ( 0 ) ) and
1638- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) )
1638+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) )
16391639 }
16401640
16411641 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -1701,7 +1701,7 @@ module Array {
17011701 private int n ;
17021702
17031703 ShiftArgKnownSummary ( ) {
1704- n = mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) and
1704+ n = mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) and
17051705 this = "shift(" + n + ")"
17061706 }
17071707
@@ -1724,7 +1724,7 @@ module Array {
17241724 ShiftArgUnknownSummary ( ) {
17251725 this = "shift(index)" and
17261726 exists ( mc .getArgument ( 0 ) ) and
1727- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) )
1727+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) )
17281728 }
17291729
17301730 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -1826,7 +1826,7 @@ module Array {
18261826 SliceBangRangeKnownSummary ( ) {
18271827 mc .getNumberOfArguments ( ) = 2 and
18281828 start = getKnownArrayElementContent ( mc .getArgument ( 0 ) ) .getIndex ( ) and
1829- exists ( int length | length = mc .getArgument ( 1 ) .getValueText ( ) .toInt ( ) |
1829+ exists ( int length | length = mc .getArgument ( 1 ) .getConstantValue ( ) .getInt ( ) |
18301830 end = ( start + length - 1 ) and
18311831 this = "slice!(" + start + ", " + length + ")"
18321832 )
@@ -1835,11 +1835,11 @@ module Array {
18351835 exists ( RangeLiteral rl |
18361836 rl = mc .getArgument ( 0 ) and
18371837 (
1838- start = rl .getBegin ( ) .getValueText ( ) .toInt ( ) and start >= 0
1838+ start = rl .getBegin ( ) .getConstantValue ( ) .getInt ( ) and start >= 0
18391839 or
18401840 not exists ( rl .getBegin ( ) ) and start = 0
18411841 ) and
1842- exists ( int e | e = rl .getEnd ( ) .getValueText ( ) .toInt ( ) and e >= 0 |
1842+ exists ( int e | e = rl .getEnd ( ) .getConstantValue ( ) .getInt ( ) and e >= 0 |
18431843 rl .isInclusive ( ) and end = e
18441844 or
18451845 rl .isExclusive ( ) and end = e - 1
@@ -1883,16 +1883,16 @@ module Array {
18831883 (
18841884 mc .getNumberOfArguments ( ) = 2 and
18851885 (
1886- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) ) or
1887- not exists ( mc .getArgument ( 1 ) .getValueText ( ) .toInt ( ) )
1886+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) ) or
1887+ not exists ( mc .getArgument ( 1 ) .getConstantValue ( ) .getInt ( ) )
18881888 )
18891889 or
18901890 mc .getNumberOfArguments ( ) = 1 and
18911891 exists ( RangeLiteral rl | rl = mc .getArgument ( 0 ) |
18921892 exists ( rl .getBegin ( ) ) and
1893- not exists ( int b | b = rl .getBegin ( ) .getValueText ( ) .toInt ( ) and b >= 0 )
1893+ not exists ( int b | b = rl .getBegin ( ) .getConstantValue ( ) .getInt ( ) and b >= 0 )
18941894 or
1895- not exists ( int e | e = rl .getEnd ( ) .getValueText ( ) .toInt ( ) and e >= 0 )
1895+ not exists ( int e | e = rl .getEnd ( ) .getConstantValue ( ) .getInt ( ) and e >= 0 )
18961896 )
18971897 )
18981898 }
@@ -1920,7 +1920,7 @@ module Array {
19201920 ValuesAtKnownSummary ( ) {
19211921 this = "values_at(known)" and
19221922 forall ( int i | i in [ 0 .. mc .getNumberOfArguments ( ) - 1 ] |
1923- mc .getArgument ( i ) .getValueText ( ) .toInt ( ) >= 0
1923+ mc .getArgument ( i ) .getConstantValue ( ) .getInt ( ) >= 0
19241924 )
19251925 }
19261926
@@ -1932,7 +1932,7 @@ module Array {
19321932 or
19331933 exists ( ArrayIndex elementIndex , int argIndex |
19341934 argIndex in [ 0 .. mc .getNumberOfArguments ( ) - 1 ] and
1935- elementIndex = mc .getArgument ( argIndex ) .getValueText ( ) .toInt ( )
1935+ elementIndex = mc .getArgument ( argIndex ) .getConstantValue ( ) .getInt ( )
19361936 |
19371937 input = "ArrayElement[" + elementIndex + "] of Receiver" and
19381938 output = "ArrayElement[" + argIndex + "] of ReturnValue"
@@ -1949,7 +1949,7 @@ module Array {
19491949 ValuesAtUnknownSummary ( ) {
19501950 this = "values_at(unknown)" and
19511951 exists ( int i | i in [ 0 .. mc .getNumberOfArguments ( ) - 1 ] |
1952- not exists ( int val | val = mc .getArgument ( i ) .getValueText ( ) .toInt ( ) and val >= 0 )
1952+ not exists ( int val | val = mc .getArgument ( i ) .getConstantValue ( ) .getInt ( ) and val >= 0 )
19531953 )
19541954 }
19551955
@@ -2695,7 +2695,7 @@ module Enumerable {
26952695
26962696 TakeKnownSummary ( ) {
26972697 this = "take(" + i + ")" and
2698- i = mc .getArgument ( 0 ) .getValueText ( ) .toInt ( )
2698+ i = mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( )
26992699 }
27002700
27012701 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
@@ -2715,7 +2715,7 @@ module Enumerable {
27152715 private class TakeUnknownSummary extends TakeSummary {
27162716 TakeUnknownSummary ( ) {
27172717 this = "take(index)" and
2718- not exists ( mc .getArgument ( 0 ) .getValueText ( ) .toInt ( ) )
2718+ not exists ( mc .getArgument ( 0 ) .getConstantValue ( ) .getInt ( ) )
27192719 }
27202720
27212721 override predicate propagatesFlowExt ( string input , string output , boolean preservesValue ) {
0 commit comments