File tree Expand file tree Collapse file tree 2 files changed +9
-3
lines changed Expand file tree Collapse file tree 2 files changed +9
-3
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 9ab9bd9cc2dc97c2acc26849dd24b8989b76ea32
2
+ refs/heads/master: 9edaa7dba3181ae68c60204e1e47a2d20e86236e
Original file line number Diff line number Diff line change @@ -2362,9 +2362,15 @@ mod Unify {
2362
2362
2363
2363
auto ures = unify_step( cx, expected, actual) ;
2364
2364
alt ( ures) {
2365
- case ( ures_ok( ?t) ) {
2365
+ case ( ures_ok( ?typ) ) {
2366
+ // Fast path: if there are no local variables, don't perform
2367
+ // substitutions.
2368
+ if ( _vec. len[ mutable UFind . node] ( cx. sets. nodes) == 0 u) {
2369
+ ret ures_ok( typ) ;
2370
+ }
2371
+
2366
2372
auto set_types = unify_sets( cx) ;
2367
- auto t2 = substitute( cx, set_types, t ) ;
2373
+ auto t2 = substitute( cx, set_types, typ ) ;
2368
2374
ret ures_ok( t2) ;
2369
2375
}
2370
2376
case ( _) { ret ures; }
You can’t perform that action at this time.
0 commit comments