diff options
author | Jussi Pakkanen <jpakkane@gmail.com> | 2017-08-14 20:28:12 +0300 |
---|---|---|
committer | Jussi Pakkanen <jpakkane@gmail.com> | 2017-08-14 22:32:29 +0300 |
commit | 4a766147fb3f79451d650ef7b94a7e6dfe2c9404 (patch) | |
tree | 508da5ff56cc6658f43bec0cd6374ce763c2a23a /mesonbuild/interpreterbase.py | |
parent | c8e61f112d8b62388f4fa8ab75e032226a1d4fb8 (diff) | |
download | meson-4a766147fb3f79451d650ef7b94a7e6dfe2c9404.zip meson-4a766147fb3f79451d650ef7b94a7e6dfe2c9404.tar.gz meson-4a766147fb3f79451d650ef7b94a7e6dfe2c9404.tar.bz2 |
Printing unknown kwarg error message no longer crashes the parser.
Diffstat (limited to 'mesonbuild/interpreterbase.py')
-rw-r--r-- | mesonbuild/interpreterbase.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index c075541..d2e2ab3 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -62,13 +62,19 @@ class permittedKwargs: def __call__(self, f): @wraps(f) - def wrapped(s, node, args, kwargs): + def wrapped(s, node_or_state, args, kwargs): + if hasattr(s, 'subdir'): + subdir = s.subdir + lineno = s.current_lineno + elif hasattr(node_or_state, 'subdir'): + subdir = node_or_state.subdir + lineno = node_or_state.current_lineno for k in kwargs: if k not in self.permitted: - fname = os.path.join(s.subdir, environment.build_filename) + fname = os.path.join(subdir, environment.build_filename) mlog.warning('''Passed invalid keyword argument "%s" in %s line %d. -This will become a hard error in the future.''' % (k, fname, s.current_lineno)) - return f(s, node, args, kwargs) +This will become a hard error in the future.''' % (k, fname, lineno)) + return f(s, node_or_state, args, kwargs) return wrapped |