From e42f366e0b272196b99ae4f80453d6679b3f90bb Mon Sep 17 00:00:00 2001 From: Hemmo Nieminen Date: Tue, 31 Jan 2017 19:10:08 +0200 Subject: Fix an uninitialized variable access error. To reproduce, one could write: foo = files('foo.c') foo[0].path() and get: Traceback (most recent call last): [snip] File "/home/trhd/Projects/meson/mesonbuild/interpreterbase.py", line 398, in method_call raise InvalidArguments('Variable "%s" is not callable.' % object_name) UnboundLocalError: local variable 'object_name' referenced before assignment Fix this by handling file objects separately. --- mesonbuild/interpreterbase.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mesonbuild/interpreterbase.py b/mesonbuild/interpreterbase.py index 12e4fc4..e59557a 100644 --- a/mesonbuild/interpreterbase.py +++ b/mesonbuild/interpreterbase.py @@ -392,6 +392,8 @@ class InterpreterBase: return self.int_method_call(obj, method_name, args) if isinstance(obj, list): return self.array_method_call(obj, method_name, self.reduce_arguments(args)[0]) + if isinstance(obj, mesonlib.File): + raise InvalidArguments('File object "%s" is not callable.' % obj) if not isinstance(obj, InterpreterObject): raise InvalidArguments('Variable "%s" is not callable.' % object_name) (args, kwargs) = self.reduce_arguments(args) -- cgit v1.1