diff --git a/src/breakshaft/graph_walker.py b/src/breakshaft/graph_walker.py index 1bdfc9d..2aa0aac 100644 --- a/src/breakshaft/graph_walker.py +++ b/src/breakshaft/graph_walker.py @@ -70,7 +70,7 @@ class GraphWalker: if not dead_end: - for opt, _ in point.opt_args: + for opt in point.opt_args: subg = cls.generate_callgraph_singletype(injectors, from_types, opt, diff --git a/src/breakshaft/models.py b/src/breakshaft/models.py index 0d1afb4..c49fc91 100644 --- a/src/breakshaft/models.py +++ b/src/breakshaft/models.py @@ -18,7 +18,7 @@ class ConversionPoint: fn: Callable injects: type requires: tuple[type, ...] - opt_args: tuple[tuple[type, object], ...] + opt_args: tuple[type, ...] def __hash__(self): return hash((self.fn, self.injects, self.requires)) @@ -67,15 +67,15 @@ class ConversionPoint: orig_argtypes = [] for argname, argtype in orig_args: - orig_argtypes.append((argtype, argname in defaults.keys(), defaults.get(argname))) + orig_argtypes.append((argtype, argname in defaults.keys())) - default_map: list[tuple[bool, object]] = [] - for argtype, has_default, default in orig_argtypes: + default_map: list[bool] = [] + for argtype, has_default in orig_argtypes: if isinstance(argtype, types.UnionType) or get_origin(argtype) is Union: u_types = list(get_args(argtype)) + [argtype] else: u_types = [argtype] - default_map.append((has_default, default)) + default_map.append(has_default) argtypes.append(u_types) argtype_combinations = all_combinations(argtypes) @@ -83,9 +83,9 @@ class ConversionPoint: for argtype_combination in argtype_combinations: req_args = [] opt_args = [] - for argt, (has_default, default) in zip(argtype_combination, default_map): + for argt, has_default in zip(argtype_combination, default_map): if has_default: - opt_args.append((argt, default)) + opt_args.append(argt) else: req_args.append(argt) ret.append(ConversionPoint(func, rettype, tuple(req_args), tuple(opt_args))) diff --git a/src/breakshaft/renderer.py b/src/breakshaft/renderer.py index 8494e6b..ffe4b28 100644 --- a/src/breakshaft/renderer.py +++ b/src/breakshaft/renderer.py @@ -36,7 +36,7 @@ class ConversionRenderData: argname = argmap[arg_id][0] fnargs.append((argname, hashname(argtype))) - for arg_id, (argtype, _) in enumerate(inj.opt_args, len(inj.requires)): + for arg_id, argtype in enumerate(inj.opt_args, len(inj.requires)): argname = argmap[arg_id][0] if argtype in provided_types: fnargs.append((argname, hashname(argtype)))