diff --git a/evaluate.py b/evaluate.py index 949634da..57889f2e 100644 --- a/evaluate.py +++ b/evaluate.py @@ -969,7 +969,10 @@ def assign_tuples(tup, results, seek_name): types = [] for r in results: if hasattr(r, "get_exact_index_types"): - types += r.get_exact_index_types(index) + try: + types += r.get_exact_index_types(index) + except IndexError: + pass else: debug.warning("invalid tuple lookup %s of result %s in %s" % (tup, results, seek_name)) diff --git a/test/completion/arrays.py b/test/completion/arrays.py index 09aa373a..b606d144 100644 --- a/test/completion/arrays.py +++ b/test/completion/arrays.py @@ -6,6 +6,10 @@ [1,""][0] #? str() [1,""][1] +#? int() str() +[1,""][2] +#? int() str() +[1,""][20] a = list() #? list() @@ -92,7 +96,7 @@ u1 (u1) # ----------------- -# should fail (return nothing) +# imbalanced sides # ----------------- (f, g) = (1,) #? int() @@ -100,12 +104,26 @@ f #? [] g. +(f, g, h) = (1,'') +#? int() +f +#? str() +g +#? [] +h. + (f1, g1) = 1 #? [] f1. #? [] g1. +(f, g) = (1,'',1.0) +#? int() +f +#? str() +g + # ----------------- # dicts # ----------------- @@ -118,3 +136,5 @@ dic2['asdf'] dic2[r'asdf'] #? int() dic2[r'asdf'] +#? int() str() +dic2['just_something']