From: <no...@so...> - 2002-06-27 12:18:57
|
Bugs item #574546, was opened at 2002-06-27 14:18 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=574546&group_id=12867 Category: Jythonc compiler Group: None Status: Open Resolution: None Priority: 5 Submitted By: Bram Bouwens (bbouwens) Assigned to: Nobody/Anonymous (nobody) Summary: CodeCompiler.visitAugAssign : bad visit Initial Comment: In my application there is a line like item.attribute += "value" which doesn't work. The attribute is looked up with the __getattr__ method as item is a wrapper around a Java object. So this is effectively equivalent to item.__getattr__("attribute").__iadd__("value") When I replace the above line with item.attribute.__iadd__("value") it works fine. I noticed that the original version causes a call to item.__setattr__(None) (or something else instead of None) which is not to be expected. The problem went away when I commented out line 1293 of org/python/compiler/CodeCompiler.java rev. 2.28. That line must be useless (so by definition incorrect) as the augbinop already does the store itself. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=574546&group_id=12867 |
From: <no...@so...> - 2002-07-03 21:37:40
|
Bugs item #574546, was opened at 2002-06-27 14:18 You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=574546&group_id=12867 >Category: Core Group: None >Status: Closed >Resolution: Rejected Priority: 5 Submitted By: Bram Bouwens (bbouwens) Assigned to: Nobody/Anonymous (nobody) Summary: CodeCompiler.visitAugAssign : bad visit Initial Comment: In my application there is a line like item.attribute += "value" which doesn't work. The attribute is looked up with the __getattr__ method as item is a wrapper around a Java object. So this is effectively equivalent to item.__getattr__("attribute").__iadd__("value") When I replace the above line with item.attribute.__iadd__("value") it works fine. I noticed that the original version causes a call to item.__setattr__(None) (or something else instead of None) which is not to be expected. The problem went away when I commented out line 1293 of org/python/compiler/CodeCompiler.java rev. 2.28. That line must be useless (so by definition incorrect) as the augbinop already does the store itself. ---------------------------------------------------------------------- >Comment By: Finn Bock (bckfnn) Date: 2002-07-03 23:37 Message: Logged In: YES user_id=4201 This is not a bug. The result of augmented assignment operator must be rebound back as a attribute or index or name. It is not acceptable to depend solely on the __iadd__ to modify the attribute. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=112867&aid=574546&group_id=12867 |