OSDN Git Service

nir: correct use of identity check in python
authorDylan Baker <dylan@pnwbakers.com>
Fri, 25 Oct 2019 20:48:38 +0000 (13:48 -0700)
committerDylan Baker <dylan@pnwbakers.com>
Tue, 5 Nov 2019 17:17:38 +0000 (09:17 -0800)
Python has the identity operator `is`, and the equality operator `==`.
Using `is` with strings sometimes works in CPython due to optimizations
(they have some kind of cache), but it may not always work.

Fixes: 96c4b135e34d0804e41bfbc28fc1b5050c49d71e
       ("nir/algebraic: Don't put quotes around floating point literals")
Reviewed-by: Matt Turner <mattst88@gmail.com>
(cherry picked from commit 717606f9f32af6540b68336e676fca9dd16f282a)

src/compiler/nir/nir_algebraic.py

index d8d0a95..e138728 100644 (file)
@@ -301,8 +301,8 @@ class Variable(Value):
       # constant.  If we want to support names that have numeric or
       # punctuation characters, we can me the first assertion more flexible.
       assert self.var_name.isalpha()
-      assert self.var_name is not 'True'
-      assert self.var_name is not 'False'
+      assert self.var_name != 'True'
+      assert self.var_name != 'False'
 
       self.is_constant = m.group('const') is not None
       self.cond = m.group('cond')