equal
deleted
inserted
replaced
52 try: |
52 try: |
53 var = newroot.defined_vars[varname] |
53 var = newroot.defined_vars[varname] |
54 except KeyError: |
54 except KeyError: |
55 continue |
55 continue |
56 stinfo = var.stinfo |
56 stinfo = var.stinfo |
57 if stinfo.get('uidrels'): |
57 if stinfo.get('uidrel') is not None: |
58 continue # eid specified, no need for additional type specification |
58 continue # eid specified, no need for additional type specification |
59 try: |
59 try: |
60 typerels = rqlst.defined_vars[varname].stinfo.get('typerels') |
60 typerel = rqlst.defined_vars[varname].stinfo.get('typerel') |
61 except KeyError: |
61 except KeyError: |
62 assert varname in rqlst.aliases |
62 assert varname in rqlst.aliases |
63 continue |
63 continue |
64 if newroot is rqlst and typerels: |
64 if newroot is rqlst and typerel is not None: |
65 mytyperel = iter(typerels).next() |
65 mytyperel = typerel |
66 else: |
66 else: |
67 for vref in newroot.defined_vars[varname].references(): |
67 for vref in newroot.defined_vars[varname].references(): |
68 rel = vref.relation() |
68 rel = vref.relation() |
69 if rel and rel.is_types_restriction(): |
69 if rel and rel.is_types_restriction(): |
70 mytyperel = rel |
70 mytyperel = rel |
91 rel = var.scope.add_type_restriction(var, possibletypes) |
91 rel = var.scope.add_type_restriction(var, possibletypes) |
92 else: |
92 else: |
93 # tree is not annotated yet, no scope set so add the restriction |
93 # tree is not annotated yet, no scope set so add the restriction |
94 # to the root |
94 # to the root |
95 rel = newroot.add_type_restriction(var, possibletypes) |
95 rel = newroot.add_type_restriction(var, possibletypes) |
96 stinfo['typerels'] = frozenset((rel,)) |
96 stinfo['typerel'] = rel |
97 stinfo['possibletypes'] = possibletypes |
97 stinfo['possibletypes'] = possibletypes |
98 |
98 |
99 |
99 |
100 def remove_solutions(origsolutions, solutions, defined): |
100 def remove_solutions(origsolutions, solutions, defined): |
101 """when a rqlst has been generated from another by introducing security |
101 """when a rqlst has been generated from another by introducing security |