interpreter: Reduce to_sring method to base 10

The int's to_string method implementation has been reduced to base
10.
pull/2691/head
Iñigo Martínez 7 years ago committed by Jussi Pakkanen
parent 30f2c4857c
commit 3d0a9b7911
  1. 7
      mesonbuild/interpreterbase.py
  2. 15
      test cases/common/165 int formatting/meson.build

@ -452,13 +452,8 @@ class InterpreterBase:
elif method_name == 'to_string':
if not posargs:
return str(obj)
elif len(posargs) == 1 and isinstance(posargs[0], str):
f = 'd' if len(posargs[0].strip()) == 0 else posargs[0]
if re.match('^[bcdoxX]$', f) is None:
raise InvalidCode('Invalid format for int to string conversion "%s"' % f)
return str(('{:' + f + '}').format(obj))
else:
raise InterpreterException('int.to_string() must have either no arguments or exactly one string arguments that signify what format to use.')
raise InterpreterException('int.to_string() must have no arguments.')
else:
raise InterpreterException('Unknown method "%s" for an integer.' % method_name)

@ -1,15 +0,0 @@
project('int formatting', 'c')
values = [
['', '74'],
['c', 'J'],
['b', '1001010'],
['d', '74'],
['o', '112'],
['x', '4a'],
['X', '4A']
]
foreach value: values
assert(74.to_string(value[0]) == value[1], 'conversion is broken')
endforeach
Loading…
Cancel
Save