Skip to content

Instantly share code, notes, and snippets.

@mikeyhew
Created November 8, 2017 22:18
Show Gist options
  • Save mikeyhew/63daf62faaa150744046c60e66349a97 to your computer and use it in GitHub Desktop.
Save mikeyhew/63daf62faaa150744046c60e66349a97 to your computer and use it in GitHub Desktop.
DEBUG:rustc_typeck::collect: convert: item with id 2
DEBUG:rustc_typeck::collect: convert: item std with id 3
DEBUG:rustc_typeck::collect: convert: item Foo with id 4
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(9), ast_ty=type(&'a isize))
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(10: 'a)) yields ReEarlyBound(0, 'a)
DEBUG:rustc_typeck::astconv: TyRef r=ReEarlyBound(0, 'a)
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(11), ast_ty=type(isize))
DEBUG:rustc_typeck::astconv: ast_ty_to_ty: maybe_qself=None path=path(isize)
DEBUG:rustc_typeck::astconv: base_def_to_ty(def=PrimTy(TyInt(isize)), opt_self_ty=None, path_segments=[PathSegment { name: isize(93), parameters: None, infer_types: false }])
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(13), ast_ty=type(&'b isize))
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(14: 'b)) yields ReEarlyBound(1, 'b)
DEBUG:rustc_typeck::astconv: TyRef r=ReEarlyBound(1, 'b)
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(15), ast_ty=type(isize))
DEBUG:rustc_typeck::astconv: ast_ty_to_ty: maybe_qself=None path=path(isize)
DEBUG:rustc_typeck::astconv: base_def_to_ty(def=PrimTy(TyInt(isize)), opt_self_ty=None, path_segments=[PathSegment { name: isize(93), parameters: None, infer_types: false }])
DEBUG:rustc_typeck::collect: convert: item with id 17
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(21), ast_ty=type(Foo<'a, 'b>))
DEBUG:rustc_typeck::astconv: ast_ty_to_ty: maybe_qself=None path=path(Foo<'a, 'b>)
DEBUG:rustc_typeck::astconv: base_def_to_ty(def=Struct(DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }), opt_self_ty=None, path_segments=[PathSegment { name: Foo(87), parameters: Some(PathParameters { lifetimes: [lifetime(22: 'a), lifetime(23: 'b)], types: [], bindings: [], parenthesized: false }), infer_types: false }])
DEBUG:rustc_typeck::astconv: create_substs_for_ast_path(def_id=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }, self_ty=None, parameters=PathParameters { lifetimes: [lifetime(22: 'a), lifetime(23: 'b)], types: [], bindings: [], parenthesized: false })
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(22: 'a)) yields ReEarlyBound(0, 'a)
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(23: 'b)) yields ReEarlyBound(1, 'b)
DEBUG:rustc_typeck::astconv: create_substs_for_ast_path(decl_generics=Generics { parent: None, parent_regions: 0, parent_types: 0, regions: [RegionParameterDef('a, DefId { krate: CrateNum(0), index: DefIndex(1:11) => explicit_self_lifetime_mismatch[317d]::Foo[0]::'a[0] }, 0), RegionParameterDef('b, DefId { krate: CrateNum(0), index: DefIndex(1:12) => explicit_self_lifetime_mismatch[317d]::Foo[0]::'b[0] }, 1)], types: [], type_param_to_index: {}, has_self: false, has_late_bound_regions: None }, self_ty=None) -> Slice([ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)])
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] i=0 impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::collect: convert: item main with id 32
DEBUG:rustc_typeck::astconv: ty_of_fn
DEBUG:rustc_typeck::astconv: ty_of_fn: output_ty=()
DEBUG:rustc_typeck::astconv: ty_of_fn
DEBUG:rustc_typeck::astconv: ast_ty_to_ty(id=NodeId(28), ast_ty=type(Foo<'b, 'a>))
DEBUG:rustc_typeck::astconv: ast_ty_to_ty: maybe_qself=None path=path(Foo<'b, 'a>)
DEBUG:rustc_typeck::astconv: base_def_to_ty(def=Struct(DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }), opt_self_ty=None, path_segments=[PathSegment { name: Foo(87), parameters: Some(PathParameters { lifetimes: [lifetime(29: 'b), lifetime(30: 'a)], types: [], bindings: [], parenthesized: false }), infer_types: false }])
DEBUG:rustc_typeck::astconv: create_substs_for_ast_path(def_id=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }, self_ty=None, parameters=PathParameters { lifetimes: [lifetime(29: 'b), lifetime(30: 'a)], types: [], bindings: [], parenthesized: false })
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(29: 'b)) yields ReEarlyBound(1, 'b)
DEBUG:rustc_typeck::astconv: ast_region_to_region(lifetime=lifetime(30: 'a)) yields ReEarlyBound(0, 'a)
DEBUG:rustc_typeck::astconv: create_substs_for_ast_path(decl_generics=Generics { parent: None, parent_regions: 0, parent_types: 0, regions: [RegionParameterDef('a, DefId { krate: CrateNum(0), index: DefIndex(1:11) => explicit_self_lifetime_mismatch[317d]::Foo[0]::'a[0] }, 0), RegionParameterDef('b, DefId { krate: CrateNum(0), index: DefIndex(1:12) => explicit_self_lifetime_mismatch[317d]::Foo[0]::'b[0] }, 1)], types: [], type_param_to_index: {}, has_self: false, has_late_bound_regions: None }, self_ty=None) -> Slice([ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)])
DEBUG:rustc_typeck::astconv: ty_of_fn: output_ty=()
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] i=0 impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::check::wfcheck: visit_item: Item { name: (0), id: NodeId(2), hir_id: HirId { owner: DefIndex(0:1), local_id: ItemLocalId(0) }, attrs: [Attribute { id: AttrId(1), style: Outer, path: path(prelude_import), tokens: TokenStream { kind: Empty }, is_sugared_doc: false, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }], node: ItemUse(path(std::prelude::v1), Glob), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }
DEBUG:rustc_typeck::check::wfcheck: check_item_well_formed(it.id=2, it.name={{?}})
DEBUG:rustc_typeck::check::wfcheck: visit_item: Item { name: std(97), id: NodeId(3), hir_id: HirId { owner: DefIndex(0:2), local_id: ItemLocalId(0) }, attrs: [Attribute { id: AttrId(0), style: Outer, path: path(macro_use), tokens: TokenStream { kind: Empty }, is_sugared_doc: false, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }], node: ItemExternCrate(Some(std(97))), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }
DEBUG:rustc_typeck::check::wfcheck: check_item_well_formed(it.id=3, it.name=std)
DEBUG:rustc_typeck::check::wfcheck: visit_item: Item { name: Foo(87), id: NodeId(4), hir_id: HirId { owner: DefIndex(0:3), local_id: ItemLocalId(0) }, attrs: [], node: ItemStruct(Struct([StructField { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:14:5: 14:17, name: x(92), vis: Inherited, id: NodeId(8), ty: type(&'a isize), attrs: [] }, StructField { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:15:5: 15:17, name: y(94), vis: Inherited, id: NodeId(12), ty: type(&'b isize), attrs: [] }], NodeId(16)), Generics { lifetimes: [LifetimeDef { lifetime: lifetime(5: 'a), bounds: [], pure_wrt_drop: false }, LifetimeDef { lifetime: lifetime(6: 'b), bounds: [], pure_wrt_drop: false }], ty_params: [], where_clause: WhereClause { id: NodeId(7), predicates: [] }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:13:11: 13:18 }), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:13:1: 16:2 }
DEBUG:rustc_typeck::check::wfcheck: check_item_well_formed(it.id=4, it.name=Foo)
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=&ReEarlyBound(0, 'a) isize)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=&ReEarlyBound(0, 'a) isize predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=&ReEarlyBound(1, 'b) isize)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=&ReEarlyBound(1, 'b) isize predicates=[]
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=&ReEarlyBound(0, 'a) isize,depth=0))
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=&ReEarlyBound(1, 'b) isize,depth=0))
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=InstantiatedPredicates([]))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=InstantiatedPredicates([]) predicates=[]
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc_typeck::check::regionck: regionck_item(item.id=NodeId(4), wf_tys=[]
DEBUG:rustc_typeck::check::regionck: relate_free_regions >>
DEBUG:rustc_typeck::check::regionck: << relate_free_regions
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: node_id=4
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: r_o=RegionObligation(sub_region=ReEarlyBound(0, 'a), sup_type=isize) cause=ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:14:5: 14:17, body_id: NodeId(4), code: ReferenceOutlivesReferent(&ReEarlyBound(0, 'a) isize) }
DEBUG:rustc_typeck::check::regionck: type_must_outlive(ty=isize, region=ReEarlyBound(0, 'a), origin=ReferenceOutlivesReferent(&ReEarlyBound(0, 'a) isize, src/test/compile-fail/explicit-self-lifetime-mismatch.rs:14:5: 14:17))
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: r_o=RegionObligation(sub_region=ReEarlyBound(1, 'b), sup_type=isize) cause=ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:15:5: 15:17, body_id: NodeId(4), code: ReferenceOutlivesReferent(&ReEarlyBound(1, 'b) isize) }
DEBUG:rustc_typeck::check::regionck: type_must_outlive(ty=isize, region=ReEarlyBound(1, 'b), origin=ReferenceOutlivesReferent(&ReEarlyBound(1, 'b) isize, src/test/compile-fail/explicit-self-lifetime-mismatch.rs:15:5: 15:17))
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::variance::terms: add_inferreds for item use {{?}} (id=2)
DEBUG:rustc_typeck::variance::terms: add_inferreds for item extern crate std (id=3)
DEBUG:rustc_typeck::variance::terms: add_inferreds for item struct Foo (id=4)
DEBUG:rustc_typeck::variance::terms: add_inferreds for item impl Foo (id=17)
DEBUG:rustc_typeck::variance::terms: add_inferreds for item fn main (id=32)
DEBUG:rustc_typeck::variance::constraints: build_constraints_for_item(Foo)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=&ReEarlyBound(0, 'a) isize, variance=+)
DEBUG:rustc_typeck::variance::constraints: add_constraint(index=0, variance=-)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=isize, variance=+)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=&ReEarlyBound(1, 'b) isize, variance=+)
DEBUG:rustc_typeck::variance::constraints: add_constraint(index=1, variance=-)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=isize, variance=+)
DEBUG:rustc_typeck::variance::constraints: build_constraints_for_item(main)
DEBUG:rustc_typeck::variance::constraints: build_constraints_for_item(Foo::bar)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>, variance=-)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_substs(def_id=DefId { krate: CrateNum(0), index: DefIndex(0:3) => explicit_self_lifetime_mismatch[317d]::Foo[0] }, substs=Slice([ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)]), variance=-)
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_substs: variance_decl=[0] variance_i=(- × [0])
DEBUG:rustc_typeck::variance::constraints: add_constraint(index=1, variance=(- × [0]))
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_substs: variance_decl=[1] variance_i=(- × [1])
DEBUG:rustc_typeck::variance::constraints: add_constraint(index=0, variance=(- × [1]))
DEBUG:rustc_typeck::variance::constraints: add_constraints_from_ty(ty=(), variance=+)
DEBUG:rustc_typeck::variance::solve: Updating inferred 0 from * to - due to -
DEBUG:rustc_typeck::variance::solve: Updating inferred 1 from * to - due to -
DEBUG:rustc_typeck::variance::solve: Updating inferred 3 from * to + due to (- × [0])
DEBUG:rustc_typeck::variance::solve: Updating inferred 2 from * to + due to (- × [1])
DEBUG:rustc_typeck::variance::solve: id=4 variances=[-, -]
DEBUG:rustc_typeck::variance::solve: id=24 variances=[+, +]
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::constrained_type_params: setup_constraining_predicates: predicates=[] i=0 impl_trait_ref=None input_parameters={Parameter(0), Parameter(1)}
DEBUG:rustc_typeck::check::wfcheck: visit_item: Item { name: (0), id: NodeId(17), hir_id: HirId { owner: DefIndex(0:4), local_id: ItemLocalId(0) }, attrs: [], node: ItemImpl(Normal, "positive", Final, Generics { lifetimes: [LifetimeDef { lifetime: lifetime(18: 'a), bounds: [], pure_wrt_drop: false }, LifetimeDef { lifetime: lifetime(19: 'b), bounds: [], pure_wrt_drop: false }], ty_params: [], where_clause: WhereClause { id: NodeId(20), predicates: [] }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:5: 18:12 }, None, type(Foo<'a, 'b>), [ImplItemRef { id: ImplItemId { node_id: NodeId(24) }, name: bar(95), kind: Method { has_self: true }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:5: 19:32, vis: Inherited, defaultness: Final }]), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:1: 20:2 }
DEBUG:rustc_typeck::check::wfcheck: check_item_well_formed(it.id=17, it.name=Foo)
DEBUG:rustc_typeck::check::wfcheck: check_impl: Item { name: (0), id: NodeId(17), hir_id: HirId { owner: DefIndex(0:4), local_id: ItemLocalId(0) }, attrs: [], node: ItemImpl(Normal, "positive", Final, Generics { lifetimes: [LifetimeDef { lifetime: lifetime(18: 'a), bounds: [], pure_wrt_drop: false }, LifetimeDef { lifetime: lifetime(19: 'b), bounds: [], pure_wrt_drop: false }], ty_params: [], where_clause: WhereClause { id: NodeId(20), predicates: [] }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:5: 18:12 }, None, type(Foo<'a, 'b>), [ImplItemRef { id: ImplItemId { node_id: NodeId(24) }, name: bar(95), kind: Method { has_self: true }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:5: 19:32, vis: Inherited, defaultness: Final }]), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:1: 20:2 }
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:4) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:4) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> predicates=[]
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>,depth=0))
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=InstantiatedPredicates([]))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=InstantiatedPredicates([]) predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> predicates=[]
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc_typeck::check::regionck: regionck_item(item.id=NodeId(17), wf_tys=[Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>]
DEBUG:rustc_typeck::check::regionck: relate_free_regions >>
DEBUG:rustc_typeck::check::regionck: relate_free_regions(t=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check::regionck: << relate_free_regions
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: node_id=17
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:4) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:4) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check::wfcheck: visit_item: Item { name: main(96), id: NodeId(32), hir_id: HirId { owner: DefIndex(0:6), local_id: ItemLocalId(0) }, attrs: [], node: ItemFn(FnDecl { inputs: [], output: DefaultReturn(src/test/compile-fail/explicit-self-lifetime-mismatch.rs:22:11: 22:11), variadic: false, has_implicit_self: false }, Normal, NotConst, Rust, Generics { lifetimes: [], ty_params: [], where_clause: WhereClause { id: NodeId(33), predicates: [] }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }, BodyId { node_id: NodeId(36) }), vis: Inherited, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:22:1: 22:13 }
DEBUG:rustc_typeck::check::wfcheck: check_item_well_formed(it.id=32, it.name=main)
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:6) => explicit_self_lifetime_mismatch[317d]::main[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:6) => explicit_self_lifetime_mismatch[317d]::main[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Binder(([]; variadic: false)->()))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Binder(([]; variadic: false)->()) predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=InstantiatedPredicates([]))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=InstantiatedPredicates([]) predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Binder(([]; variadic: false)->()))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Binder(([]; variadic: false)->()) predicates=[]
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=(),depth=0))
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc_typeck::check::regionck: regionck_item(item.id=NodeId(32), wf_tys=[()]
DEBUG:rustc_typeck::check::regionck: relate_free_regions >>
DEBUG:rustc_typeck::check::regionck: relate_free_regions(t=())
DEBUG:rustc_typeck::check::regionck: << relate_free_regions
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: node_id=32
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:6) => explicit_self_lifetime_mismatch[317d]::main[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:6) => explicit_self_lifetime_mismatch[317d]::main[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check::wfcheck: visit_impl_item: ImplItem { id: NodeId(24), name: bar(95), hir_id: HirId { owner: DefIndex(0:5), local_id: ItemLocalId(0) }, vis: Inherited, defaultness: Final, attrs: [], generics: Generics { lifetimes: [], ty_params: [], where_clause: WhereClause { id: NodeId(25), predicates: [] }, span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1 }, node: Method(MethodSig { unsafety: Normal, constness: NotConst, abi: Rust, decl: FnDecl { inputs: [type(Foo<'b, 'a>)], output: DefaultReturn(src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:30: 19:30), variadic: false, has_implicit_self: false } }, BodyId { node_id: NodeId(35) }), span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:5: 19:32 }
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:5) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0]::bar[0] }) ()----
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:5) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0]::bar[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 0 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 0 errors after preprocessing
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()) predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=InstantiatedPredicates([]))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=InstantiatedPredicates([]) predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()) predicates=[]
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>,depth=0))
DEBUG:rustc_typeck::check: register_predicate(Obligation(predicate=(),depth=0))
DEBUG:rustc_typeck::check::wfcheck: check_method_receiver(AssociatedItem { def_id: DefId { krate: CrateNum(0), index: DefIndex(0:5) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0]::bar[0] }, name: bar(95), kind: Method, vis: Restricted(DefId { krate: CrateNum(0), index: DefIndex(0:0) => explicit_self_lifetime_mismatch[317d] }), defaultness: Final, container: ImplContainer(DefId { krate: CrateNum(0), index: DefIndex(0:4) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0] }), method_has_self_argument: true }, self_ty=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()))
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Binder(([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()) predicates=[]
DEBUG:rustc_typeck::check::wfcheck: check_method_receiver: sig=([Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>]; variadic: false)->()
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> predicates=[]
DEBUG:rustc_typeck::check: normalize_associated_types_in(value=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc_typeck::check: normalize_associated_types_in: result=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)> predicates=[]
DEBUG:rustc_typeck::check::autoderef: autoderef: steps=[], cur_ty=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>
DEBUG:rustc_typeck::check::autoderef: autoderef stage #0 is Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>
DEBUG:rustc_typeck::check::wfcheck: check_method_receiver: potential self type `Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>` to match `Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>`
DEBUG:rustc::infer: probe()
DEBUG:rustc::infer: start_snapshot()
DEBUG:rustc::infer::region_inference: RegionVarBindings: start_snapshot(0)
DEBUG:rustc::infer::at: eq(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> == Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer: commit_if_ok()
DEBUG:rustc::infer: start_snapshot()
DEBUG:rustc::infer::region_inference: RegionVarBindings: start_snapshot(1)
DEBUG:rustc::infer::equate: Equate.tys(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>, Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer: commit_if_ok() -- r.is_ok() = true
DEBUG:rustc::infer: commit_from()
DEBUG:rustc::infer::region_inference: RegionVarBindings: commit(1)
DEBUG:rustc::infer: rollback_to(cause=probe)
DEBUG:rustc::infer::type_variable: rollback_to()
DEBUG:rustc::infer::region_inference: RegionVarBindings: rollback_to(RegionSnapshot(length=0,skolemization=0))
DEBUG:rustc::infer::at: eq(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> == Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer: commit_if_ok()
DEBUG:rustc::infer: start_snapshot()
DEBUG:rustc::infer::region_inference: RegionVarBindings: start_snapshot(0)
DEBUG:rustc::infer::equate: Equate.tys(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>, Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:18: 19:28, body_id: NodeId(24), code: MethodReceiver }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:18: 19:28, body_id: NodeId(24), code: MethodReceiver }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:18: 19:28, body_id: NodeId(24), code: MethodReceiver }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:19:18: 19:28, body_id: NodeId(24), code: MethodReceiver }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer: commit_if_ok() -- r.is_ok() = true
DEBUG:rustc::infer: commit_from()
DEBUG:rustc::infer::region_inference: RegionVarBindings: commit(0)
DEBUG:rustc::infer: probe()
DEBUG:rustc::infer: start_snapshot()
DEBUG:rustc::infer::region_inference: RegionVarBindings: start_snapshot(0)
DEBUG:rustc::infer::at: eq(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)> == Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer: commit_if_ok()
DEBUG:rustc::infer: start_snapshot()
DEBUG:rustc::infer::region_inference: RegionVarBindings: start_snapshot(1)
DEBUG:rustc::infer::equate: Equate.tys(Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>, Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::equate: Equate.regions(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)))
DEBUG:rustc::infer::region_inference: RegionVarBindings: make_subregion(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) due to Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: RegionVarBindings: add_constraint(ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)))
DEBUG:rustc::infer: commit_if_ok() -- r.is_ok() = true
DEBUG:rustc::infer: commit_from()
DEBUG:rustc::infer::region_inference: RegionVarBindings: commit(1)
DEBUG:rustc::infer: rollback_to(cause=probe)
DEBUG:rustc::infer::type_variable: rollback_to()
DEBUG:rustc::infer::region_inference: RegionVarBindings: rollback_to(RegionSnapshot(length=0,skolemization=0))
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc_typeck::check::regionck: regionck_item(item.id=NodeId(24), wf_tys=[Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>, Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>, ()]
DEBUG:rustc_typeck::check::regionck: relate_free_regions >>
DEBUG:rustc_typeck::check::regionck: relate_free_regions(t=Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>)
DEBUG:rustc_typeck::check::regionck: relate_free_regions(t=Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>)
DEBUG:rustc_typeck::check::regionck: relate_free_regions(t=())
DEBUG:rustc_typeck::check::regionck: << relate_free_regions
DEBUG:rustc_typeck::check::regionck: visit_region_obligations: node_id=24
DEBUG:rustc_typeck::check: select_all_obligations_or_error
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::region_inference: RegionVarBindings: resolve_regions()
DEBUG:rustc::infer::region_inference: ----() Start constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:5) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0]::bar[0] }) ()----
DEBUG:rustc::infer::region_inference: Constraint 0 => ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a))
DEBUG:rustc::infer::region_inference: Constraint 1 => ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b))
DEBUG:rustc::infer::region_inference: ----() End constraint listing (context=DefId { krate: CrateNum(0), index: DefIndex(0:5) => explicit_self_lifetime_mismatch[317d]::{{impl}}[0]::bar[0] }) ()---
DEBUG:rustc::infer::region_inference: ---- # Iteration Expansion1
DEBUG:rustc::infer::region_inference: expansion: constraint=ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) origin=Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: expansion: constraint=ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) origin=Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: ---- Expansion Complete after 1 iteration(s)
DEBUG:rustc::infer::region_inference: collect_errors: constraint=ConstrainRegSubReg(ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)) origin=Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: collect_errors: region error at Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation })): cannot verify that ReEarlyBound(1, 'b) <= ReEarlyBound(0, 'a)
DEBUG:rustc::infer::region_inference: collect_errors: constraint=ConstrainRegSubReg(ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)) origin=Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation }))
DEBUG:rustc::infer::region_inference: collect_errors: region error at Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation })): cannot verify that ReEarlyBound(0, 'a) <= ReEarlyBound(1, 'b)
DEBUG:rustc::infer::region_inference: collect_var_errors
DEBUG:rustc::infer: is_tainted_by_errors(err_count=0, err_count_on_creation=0, tainted_by_errors_flag=false)
DEBUG:rustc::infer::error_reporting: report_region_errors(): 2 errors to start
DEBUG:rustc::infer::error_reporting: process_errors()
DEBUG:rustc::infer::error_reporting: report_region_errors: 2 errors after preprocessing
DEBUG:rustc::infer::error_reporting: report_region_errors: error = ConcreteFailure(Subtype(TypeTrace(ObligationCause { span: src/test/compile-fail/explicit-self-lifetime-mismatch.rs:1:1: 1:1, body_id: NodeId(0), code: MiscObligation })), ReEarlyBound(1, 'b), ReEarlyBound(0, 'a))
DEBUG:rustc::infer::error_reporting::named_anon_conflict: try_report_named_anon_conflict(sub=ReEarlyBound(1, 'b), sup=ReEarlyBound(0, 'a))
DEBUG:rustc::infer::error_reporting::different_lifetimes: or_false failed: self.find_anon_type(sup, &bregion_sup)
error[E0308]: mismatched types
|
= note: expected type `Foo<ReEarlyBound(0, 'a), ReEarlyBound(1, 'b)>`
found type `Foo<ReEarlyBound(1, 'b), ReEarlyBound(0, 'a)>`
note: the lifetime 'a as defined on the impl at 18:1...
--> src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:1
|
18| / impl<'a,'b> Foo<'a,'b> {
19| | fn bar(self: Foo<'b,'a>) {}
20| | }
| |_^
note: ...does not necessarily outlive the lifetime 'b as defined on the impl at 18:1
--> src/test/compile-fail/explicit-self-lifetime-mismatch.rs:18:1
|
18| / impl<'a,'b> Foo<'a,'b> {
19| | fn bar(self: Foo<'b,'a>) {}
20| | }
| |_^
error: internal compiler error: unexpected panic
note: the compiler unexpectedly panicked. this is a bug.
note: we would appreciate a bug report: https://github.com/rust-lang/rust/blob/master/CONTRIBUTING.md#bug-reports
note: rustc 1.23.0-dev running on x86_64-apple-darwin
thread 'rustc' panicked at 'encountered error with `-Z treat_err_as_bug', src/librustc_errors/lib.rs:416:12
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment