2.1 --- a/translator.py Mon Sep 04 17:55:26 2023 +0200
2.2 +++ b/translator.py Tue Sep 05 00:27:39 2023 +0200
2.3 @@ -1765,9 +1765,17 @@
2.4 # objects, with only floats supporting replaceable values.
2.5
2.6 if expr:
2.7 - target_ref = TrResolvedNameRef(n.name, ref, is_global=is_global,
2.8 - location=location)
2.9 - self.result_target_name = str(target_ref)
2.10 + # Prevent parameters from becoming result targets. Otherwise, they
2.11 + # may inadvertently cause the modification of the supplied object.
2.12 +
2.13 + parameters = self.importer.function_parameters.get(path)
2.14 +
2.15 + if not parameters or n.name not in parameters:
2.16 + target_ref = TrResolvedNameRef(n.name, ref, is_global=is_global,
2.17 + location=location)
2.18 + self.result_target_name = str(target_ref)
2.19 + else:
2.20 + self.result_target_name = None
2.21
2.22 # Expression processing is deferred until after any result target has
2.23 # been set.