From ab7f02d0a8dcf5281fa55366f77a752dfe1a4796 Mon Sep 17 00:00:00 2001 From: QuietMisdreavus Date: Tue, 16 Jan 2018 13:31:42 -0600 Subject: [PATCH 1/2] add documentation from doc(include) to analysis data --- src/librustc_save_analysis/lib.rs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/librustc_save_analysis/lib.rs b/src/librustc_save_analysis/lib.rs index 2e494fdfad8b8..8232a8efd541f 100644 --- a/src/librustc_save_analysis/lib.rs +++ b/src/librustc_save_analysis/lib.rs @@ -870,6 +870,17 @@ impl<'l, 'tcx: 'l> SaveContext<'l, 'tcx> { result.push_str(&val.as_str()); } result.push('\n'); + } else if let Some(meta_list) = attr.meta_item_list() { + meta_list.into_iter() + .filter(|it| it.check_name("include")) + .filter_map(|it| it.meta_item_list().map(|l| l.to_owned())) + .flat_map(|it| it) + .filter(|meta| meta.check_name("contents")) + .filter_map(|meta| meta.value_str()) + .for_each(|val| { + result.push_str(&val.as_str()); + result.push('\n'); + }); } } } From 5a350c137196f0a192b632f0380a8e3e5ab71fb3 Mon Sep 17 00:00:00 2001 From: QuietMisdreavus Date: Tue, 30 Jan 2018 20:54:34 -0600 Subject: [PATCH 2/2] add doc(include) to the save-analysis test --- src/test/run-make/save-analysis/extra-docs.md | 1 + src/test/run-make/save-analysis/foo.rs | 4 ++++ 2 files changed, 5 insertions(+) create mode 100644 src/test/run-make/save-analysis/extra-docs.md diff --git a/src/test/run-make/save-analysis/extra-docs.md b/src/test/run-make/save-analysis/extra-docs.md new file mode 100644 index 0000000000000..0605ca517ff3b --- /dev/null +++ b/src/test/run-make/save-analysis/extra-docs.md @@ -0,0 +1 @@ +Extra docs for this struct. diff --git a/src/test/run-make/save-analysis/foo.rs b/src/test/run-make/save-analysis/foo.rs index 834a7554a555d..5b4e4802957af 100644 --- a/src/test/run-make/save-analysis/foo.rs +++ b/src/test/run-make/save-analysis/foo.rs @@ -12,6 +12,7 @@ #![feature(box_syntax)] #![feature(rustc_private)] #![feature(associated_type_defaults)] +#![feature(external_doc)] extern crate graphviz; // A simple rust project @@ -461,3 +462,6 @@ impl Iterator for SilenceGenerator { trait Foo { type Bar = FrameBuffer; } + +#[doc(include="extra-docs.md")] +struct StructWithDocs;