diff options
| author | Alex Crichton <alex@alexcrichton.com> | 2015-04-07 14:22:55 -0700 |
|---|---|---|
| committer | Alex Crichton <alex@alexcrichton.com> | 2015-04-07 17:54:34 -0700 |
| commit | 2b9076ee19da12e3a70bdb2c630e55f8395173d2 (patch) | |
| tree | e490d0b590bb66460f9d5f23271c832683d92a2c /src/librustdoc/html | |
| parent | 6950f68870e73251c86f559dbf050ce197a24695 (diff) | |
| download | rust-2b9076ee19da12e3a70bdb2c630e55f8395173d2.tar.gz rust-2b9076ee19da12e3a70bdb2c630e55f8395173d2.zip | |
rustdoc: Encode ABI in all methods
This commit ensures that the ABI of functions is propagated all the way through to the documentation. Closes #22038
Diffstat (limited to 'src/librustdoc/html')
| -rw-r--r-- | src/librustdoc/html/format.rs | 12 | ||||
| -rw-r--r-- | src/librustdoc/html/render.rs | 5 |
2 files changed, 15 insertions, 2 deletions
diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index ae9d9761001..f6215dcb00c 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -18,6 +18,7 @@ use std::fmt; use std::iter::repeat; +use syntax::abi::Abi; use syntax::ast; use syntax::ast_util; @@ -54,6 +55,7 @@ pub struct WhereClause<'a>(pub &'a clean::Generics); pub struct TyParamBounds<'a>(pub &'a [clean::TyParamBound]); /// Wrapper struct for emitting a comma-separated list of items pub struct CommaSep<'a, T: 'a>(pub &'a [T]); +pub struct AbiSpace(pub Abi); impl VisSpace { pub fn get(&self) -> Option<ast::Visibility> { @@ -691,6 +693,16 @@ impl fmt::Display for RawMutableSpace { } } +impl fmt::Display for AbiSpace { + fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { + match self.0 { + Abi::Rust => Ok(()), + Abi::C => write!(f, "extern "), + abi => write!(f, "extern {} ", abi), + } + } +} + impl<'a> fmt::Display for Stability<'a> { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { let Stability(stab) = *self; diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 92fe5b019db..a1ec58cd3dd 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -62,7 +62,7 @@ use clean; use doctree; use fold::DocFolder; use html::format::{VisSpace, Method, UnsafetySpace, MutableSpace, Stability}; -use html::format::{ConciseStability, TyParamBounds, WhereClause, href}; +use html::format::{ConciseStability, TyParamBounds, WhereClause, href, AbiSpace}; use html::highlight; use html::item_type::ItemType; use html::layout; @@ -1746,10 +1746,11 @@ fn item_static(w: &mut fmt::Formatter, it: &clean::Item, fn item_function(w: &mut fmt::Formatter, it: &clean::Item, f: &clean::Function) -> fmt::Result { - try!(write!(w, "<pre class='rust fn'>{vis}{unsafety}fn \ + try!(write!(w, "<pre class='rust fn'>{vis}{unsafety}{abi}fn \ {name}{generics}{decl}{where_clause}</pre>", vis = VisSpace(it.visibility), unsafety = UnsafetySpace(f.unsafety), + abi = AbiSpace(f.abi), name = it.name.as_ref().unwrap(), generics = f.generics, where_clause = WhereClause(&f.generics), |
