Fix an issue with inherited lists.

This commit is contained in:
Dave Halter
2016-07-26 09:24:51 +02:00
parent fc7fd9d989
commit a6dd7bf822
2 changed files with 14 additions and 1 deletions

View File

@@ -676,7 +676,7 @@ def _check_array_additions(evaluator, compare_array, module, is_list):
# Arguments([AlreadyEvaluated([_ArrayInstance])]) inside # Arguments([AlreadyEvaluated([_ArrayInstance])]) inside
# Yeah... I know... It's complicated ;-) # Yeah... I know... It's complicated ;-)
node = list(element.var_args.argument_node[0])[0].var_args.trailer node = list(element.var_args.argument_node[0])[0].var_args.trailer
if isinstance(node, er.InstanceElement): if isinstance(node, er.InstanceElement) or node is None:
return node return node
return node.get_parent_until(er.FunctionExecution) return node.get_parent_until(er.FunctionExecution)
@@ -777,6 +777,8 @@ class _ArrayInstance(IterableWrapper):
yield types yield types
module = self.var_args.get_parent_until() module = self.var_args.get_parent_until()
if module is None:
return
is_list = str(self.instance.name) == 'list' is_list = str(self.instance.name) == 'list'
additions = _check_array_additions(self._evaluator, self.instance, module, is_list) additions = _check_array_additions(self._evaluator, self.instance, module, is_list)
if additions: if additions:

View File

@@ -311,6 +311,17 @@ for i in 0, 2:
#? int() str() #? int() str()
GetItemWithList()[i] GetItemWithList()[i]
# With super
class SuperYeah(list):
def __getitem__(self, index):
return super()[index]
#?
SuperYeah([1])[0]
#?
SuperYeah()[0]
# ----------------- # -----------------
# conversions # conversions
# ----------------- # -----------------