attribute error on missing attribute lookup
authorStefan Israelsson Tampe <stefan.itampe@gmail.com>
Fri, 13 Apr 2018 20:29:49 +0000 (22:29 +0200)
committerStefan Israelsson Tampe <stefan.itampe@gmail.com>
Fri, 13 Apr 2018 20:29:49 +0000 (22:29 +0200)
modules/language/python/compile.scm
modules/language/python/module/enum.py

index 0b3b8721c7678e7c862fcd6a8cc2faff474d582e..fc4a1c743821895d3156e39977a9a29719b49491 100644 (file)
                                      (apply values l))))
                            lam))))
            obj)))))
-                      
+
+(define miss (list 'miss))
+(define-inlinable (wr k x)
+  (if (eq? x miss)
+      (raise (AttributeError k))
+      x))
+
 (define-syntax ref-x
   (lambda (x)
     (syntax-case x ()
       ((_ v (#:fast-id f _) . l)
        #'(ref-x (f v) . l))
       ((_ v (#:identifier x) . l)
-       #'(ref-x (ref v x) . l))
+       #'(ref-x (wr x (ref v x miss)) . l))
       ((_ v (#:call-obj x) . l)
        #'(ref-x (x v) . l))
       ((_ v (#:call x ...) . l)
 (define-syntax del-x
   (syntax-rules ()
     ((_ v (#:identifier x))
-     (ref-x (ref v 'x)))
+     (ref-x (wr x (ref v x))))
     ((_ v (#:call-obj x))
      (values))
     ((_ v (#:call x ...))
index 4f388ad4807a8c03b6908481837a459c5b5fe166..89047cd5b60fafe194297254bd02cc8606381b96 100644 (file)
@@ -548,7 +548,7 @@ class Enum(metaclass=EnumMeta):
 
     def __repr__(self):
         return "<%s.%s: %r>" % (
-                self.__class__.__name__, self._name_, self._value_)
+                 self.__class__.__name__, self._name_, self._value_)
 
     def __str__(self):
         return "%s.%s" % (self.__class__.__name__, self._name_)