@@ -35,13 +35,11 @@ use pyrefly_util::owner::Owner;
3535use ruff_python_ast:: name:: Name ;
3636use ruff_text_size:: TextRange ;
3737use starlark_map:: small_map:: SmallMap ;
38- use starlark_map:: small_set:: SmallSet ;
3938
4039use crate :: alt:: answers:: LookupAnswer ;
4140use crate :: alt:: callable:: CallArg ;
4241use crate :: alt:: expr:: TypeOrExpr ;
4342use crate :: solver:: solver:: OpenTypedDictSubsetError ;
44- use crate :: solver:: solver:: SolverSnapshot ;
4543use crate :: solver:: solver:: Subset ;
4644use crate :: solver:: solver:: SubsetCacheEntry ;
4745use crate :: solver:: solver:: SubsetError ;
@@ -51,7 +49,6 @@ use crate::types::callable::Param;
5149use crate :: types:: callable:: ParamList ;
5250use crate :: types:: callable:: Params ;
5351use crate :: types:: callable:: Required ;
54- use crate :: types:: class:: Class ;
5552use crate :: types:: class:: ClassType ;
5653use crate :: types:: quantified:: QuantifiedKind ;
5754use crate :: types:: simplify:: unions;
@@ -131,37 +128,6 @@ fn any<T>(
131128}
132129
133130impl < ' a , Ans : LookupAnswer > Subset < ' a , Ans > {
134- fn try_with_rollback < T > (
135- & mut self ,
136- f : impl FnOnce ( & mut Self ) -> Result < T , SubsetError > ,
137- ) -> Result < T , SubsetError > {
138- let solver = self . solver . snapshot ( ) ;
139- let subset_cache = self . subset_cache . clone ( ) ;
140- let class_protocol_assumptions = self . class_protocol_assumptions . clone ( ) ;
141- match f ( self ) {
142- Ok ( result) => Ok ( result) ,
143- Err ( err) => {
144- self . restore_after_failed_tentative_check (
145- solver,
146- subset_cache,
147- class_protocol_assumptions,
148- ) ;
149- Err ( err)
150- }
151- }
152- }
153-
154- fn restore_after_failed_tentative_check (
155- & mut self ,
156- solver : SolverSnapshot ,
157- subset_cache : SmallMap < ( Type , Type ) , SubsetCacheEntry > ,
158- class_protocol_assumptions : SmallSet < ( Class , Class ) > ,
159- ) {
160- self . solver . restore ( solver) ;
161- self . subset_cache = subset_cache;
162- self . class_protocol_assumptions = class_protocol_assumptions;
163- }
164-
165131 /// Can a function with l_args be called as a function with u_args?
166132 fn is_subset_param_list (
167133 & mut self ,
@@ -1104,7 +1070,7 @@ impl<'a, Ans: LookupAnswer> Subset<'a, Ans> {
11041070
11051071 fn is_subset_overload ( & mut self , overload : & Overload , want : & Type ) -> Result < ( ) , SubsetError > {
11061072 if any ( overload. signatures . iter ( ) , |l| {
1107- self . try_with_rollback ( |this| this . is_subset_eq ( & l. as_type ( ) , want) )
1073+ self . is_subset_eq ( & l. as_type ( ) , want)
11081074 } )
11091075 . is_ok ( )
11101076 {
@@ -1156,7 +1122,7 @@ impl<'a, Ans: LookupAnswer> Subset<'a, Ans> {
11561122 ret. clone ( ) ,
11571123 ) ) ) ;
11581124 any ( overload. signatures . iter ( ) , |l| {
1159- self . try_with_rollback ( |this| this . is_subset_eq ( & l. as_type ( ) , & callable) )
1125+ self . is_subset_eq ( & l. as_type ( ) , & callable)
11601126 } )
11611127 } )
11621128 . is_ok ( )
0 commit comments