diff options
author | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2011-01-11 14:53:00 +0100 |
---|---|---|
committer | Sylvain Thénault <sylvain.thenault@logilab.fr> | 2011-01-11 14:53:00 +0100 |
commit | 1617a8ea349cebaaa98505b3c0c6c3f3e39768f7 (patch) | |
tree | 61d1a2ce805e59878310951a85f113ce6e213e0c /node_classes.py | |
parent | 9681d89e058a30969f6d568a71a7dd69bd289df6 (diff) | |
download | astroid-git-1617a8ea349cebaaa98505b3c0c6c3f3e39768f7.tar.gz |
fix building from living object: content of container should be turned into ast nodes
Diffstat (limited to 'node_classes.py')
-rw-r--r-- | node_classes.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/node_classes.py b/node_classes.py index 918f5672..b16ad3df 100644 --- a/node_classes.py +++ b/node_classes.py @@ -485,7 +485,8 @@ class Dict(NodeNG, Instance): if items == None: self.items = [] else: - self.items = items + self.items = [(const_factory(k), const_factory(v)) + for k,v in items.iteritems()] def pytype(self): return '__builtin__.dict' @@ -660,7 +661,7 @@ class List(NodeNG, Instance, ParentAssignTypeMixin): if elts == None: self.elts = [] else: - self.elts = elts + self.elts = [const_factory(e) for e in elts] def pytype(self): return '__builtin__.list' @@ -723,7 +724,12 @@ class Return(Statement): class Set(NodeNG, Instance, ParentAssignTypeMixin): """class representing a Set node""" _astng_fields = ('elts',) - elts = None + + def __init__(self, elts=None): + if elts is None: + self.elts = [] + else: + self.elts = [const_factory(e) for e in elts] def pytype(self): return '__builtin__.set' # XXX __builtin__ vs builtins @@ -805,7 +811,7 @@ class Tuple(NodeNG, Instance, ParentAssignTypeMixin): if elts == None: self.elts = [] else: - self.elts = elts + self.elts = [const_factory(e) for e in elts] def pytype(self): return '__builtin__.tuple' |