From bff08f2731fe658d50e291e8b6285e9cd735b528 Mon Sep 17 00:00:00 2001 From: Aaron Hill Date: Fri, 22 Jun 2018 22:25:56 -0400 Subject: [PATCH] Fix rustdoc crash when 'static bound appears in struct declaration --- src/librustdoc/clean/auto_trait.rs | 4 ++-- .../rustdoc/synthetic_auto/static-region.rs | 20 +++++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 src/test/rustdoc/synthetic_auto/static-region.rs diff --git a/src/librustdoc/clean/auto_trait.rs b/src/librustdoc/clean/auto_trait.rs index c30d6817b46..69f2ac5bd66 100644 --- a/src/librustdoc/clean/auto_trait.rs +++ b/src/librustdoc/clean/auto_trait.rs @@ -642,8 +642,8 @@ fn extract_for_generics<'b, 'c, 'd>( name: name.to_string(), kind: GenericParamDefKind::Lifetime, }) - } - &ty::ReVar(_) | &ty::ReEarlyBound(_) => None, + }, + &ty::ReVar(_) | &ty::ReEarlyBound(_) | &ty::ReStatic => None, _ => panic!("Unexpected region type {:?}", r), } }) diff --git a/src/test/rustdoc/synthetic_auto/static-region.rs b/src/test/rustdoc/synthetic_auto/static-region.rs new file mode 100644 index 00000000000..96e8b8ed5f6 --- /dev/null +++ b/src/test/rustdoc/synthetic_auto/static-region.rs @@ -0,0 +1,20 @@ +// Copyright 2018 The Rust Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution and at +// http://rust-lang.org/COPYRIGHT. +// +// Licensed under the Apache License, Version 2.0 or the MIT license +// , at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +pub trait OwnedTrait<'a> { + type Reader; +} + +// @has static_region/struct.Owned.html +// @has - '//*[@id="synthetic-implementations-list"]/*[@class="impl"]//*/code' "impl Send for \ +// Owned where >::Reader: Send" +pub struct Owned where T: OwnedTrait<'static> { + marker: >::Reader, +} -- 2.44.0