File tree Expand file tree Collapse file tree 2 files changed +17
-12
lines changed
branches/beta/src/librustc_typeck Expand file tree Collapse file tree 2 files changed +17
-12
lines changed Original file line number Diff line number Diff line change @@ -23,7 +23,7 @@ refs/tags/0.9: 36870b185fc5f5486636d4515f0e22677493f225
23
23
refs/tags/0.10: ac33f2b15782272ae348dbd7b14b8257b2148b5a
24
24
refs/tags/0.11.0: e1247cb1d0d681be034adb4b558b5a0c0d5720f9
25
25
refs/tags/0.12.0: f0c419429ef30723ceaf6b42f9b5a2aeb5d2e2d1
26
- refs/heads/beta: 522d4b0a354b60b1b69d15773197c4c3dba521a5
26
+ refs/heads/beta: af3a0b08055f9dac932264253040c3626a7052f6
27
27
refs/tags/1.0.0-alpha: e42bd6d93a1d3433c486200587f8f9e12590a4d7
28
28
refs/heads/tmp: 370fe2786109360f7c35b8ba552b83b773dd71d6
29
29
refs/tags/1.0.0-alpha.2: 4c705f6bc559886632d3871b04f58aab093bfa2f
Original file line number Diff line number Diff line change @@ -412,21 +412,26 @@ fn create_substs_for_ast_path<'tcx>(
412
412
// they were optional (e.g. paths inside expressions).
413
413
let mut type_substs = if param_mode == PathParamMode :: Optional &&
414
414
types_provided. is_empty ( ) {
415
+ fn default_type_parameter < ' tcx > ( p : & ty:: TypeParameterDef < ' tcx > , self_ty : Option < Ty < ' tcx > > )
416
+ -> Option < ty:: TypeParameterDef < ' tcx > >
417
+ {
418
+ if let Some ( ref default) = p. default {
419
+ if self_ty. is_none ( ) && default. has_self_ty ( ) {
420
+ // There is no suitable inference default for a type parameter
421
+ // that references self with no self-type provided.
422
+ return None ;
423
+ }
424
+ }
425
+
426
+ Some ( p. clone ( ) )
427
+ }
428
+
415
429
let mut substs = region_substs. clone ( ) ;
416
430
417
431
ty_param_defs
418
432
. iter ( )
419
- . map ( |p| {
420
- if let Some ( ref default) = p. default {
421
- if self_ty. is_none ( ) && default. has_self_ty ( ) {
422
- // There is no suitable inference default for a type parameter
423
- // that references Self with no self-type provided.
424
- return this. ty_infer ( None , Some ( & mut substs) , Some ( TypeSpace ) , span) ;
425
- }
426
- }
427
-
428
- this. ty_infer ( Some ( p. clone ( ) ) , Some ( & mut substs) , Some ( TypeSpace ) , span)
429
- } )
433
+ . map ( |p| this. ty_infer ( default_type_parameter ( p, self_ty) , Some ( & mut substs) ,
434
+ Some ( TypeSpace ) , span) )
430
435
. collect ( )
431
436
} else {
432
437
types_provided
You can’t perform that action at this time.
0 commit comments