Add failing test cases & release snippet

pull/8513/head
Laurin-Luis Lehning 4 years ago committed by Xavier Claessens
parent 83c3c74510
commit 2607510b18
  1. 7
      docs/markdown/snippets/fstrings.md
  2. 2
      mesonbuild/interpreterbase.py
  3. 4
      test cases/failing/113 invalid fstring/meson.build
  4. 7
      test cases/failing/113 invalid fstring/test.json
  5. 3
      test cases/failing/114 invalid fstring/meson.build
  6. 7
      test cases/failing/114 invalid fstring/test.json

@ -0,0 +1,7 @@
## Introducing format strings to the Meson language
In addition to the conventional `'A string @0@ to be formatted @1@'.format(n, m)`
method of formatting strings in the Meson DSL, there's now the additional
`f'A string @n@ to be formatted @m@'` notation that provides a non-positional
and clearer alternative. Meson's format strings are currently restricted to
identity-expressions, meaning `f'format {'m' + 'e'}'` will not parse.

@ -936,7 +936,7 @@ The result of this is undefined and will become a hard error in a future Meson r
try:
val = self.variables[var]
if not isinstance(val, (str, int, float, bool)):
raise InvalidCode(f'Identifier {var} does not name a formattable variable.')
raise InvalidCode(f'Identifier "{var}" does not name a formattable variable.')
return str(val)
except KeyError:

@ -0,0 +1,4 @@
project('invalid-fstring', 'c')
dict = {'key': true}
s = f'invalid fstring: @dict@'

@ -0,0 +1,7 @@
{
"stdout": [
{
"line": "test cases/failing/113 invalid fstring/meson.build:4:0: ERROR: Identifier \"dict\" does not name a formattable variable."
}
]
}

@ -0,0 +1,3 @@
project('invalid-fstring', 'c')
z = f'invalid fstring: @foo@'

@ -0,0 +1,7 @@
{
"stdout": [
{
"line": "test cases/failing/114 invalid fstring/meson.build:3:0: ERROR: Identifier \"foo\" does not name a variable."
}
]
}
Loading…
Cancel
Save