Skip to content

Commit 4fe7b30

Browse files
committed
---
yaml --- r: 81579 b: refs/heads/snap-stage3 c: 309ab95 h: refs/heads/master i: 81577: 7a5c0f2 81575: acd385c v: v3
1 parent b4bc43e commit 4fe7b30

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+341
-398
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
---
22
refs/heads/master: 4c6bf4872012c010f84dc7fa2cdfe87522533f89
33
refs/heads/snap-stage1: e33de59e47c5076a89eadeb38f4934f58a3618a6
4-
refs/heads/snap-stage3: a6d7fe6209bb31cc46ec5ba60e16b789b5c91914
4+
refs/heads/snap-stage3: 309ab958e6cf78caf188f6dcbf9ce35d9ba62468
55
refs/heads/try: 70152ff55722878cde684ee6462c14c65f2c4729
66
refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b

branches/snap-stage3/doc/tutorial-ffi.md

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -415,21 +415,18 @@ fn main() {
415415

416416
Most foreign code exposes a C ABI, and Rust uses the platform's C calling convention by default when
417417
calling foreign functions. Some foreign functions, most notably the Windows API, use other calling
418-
conventions. Rust provides the `abi` attribute as a way to hint to the compiler which calling
419-
convention to use:
418+
conventions. Rust provides a way to tell the compiler which convention to use:
420419

421420
~~~~
422421
#[cfg(target_os = "win32")]
423-
#[abi = "stdcall"]
424422
#[link_name = "kernel32"]
425-
extern {
423+
extern "stdcall" {
426424
fn SetEnvironmentVariableA(n: *u8, v: *u8) -> int;
427425
}
428426
~~~~
429427

430-
The `abi` attribute applies to a foreign module (it cannot be applied to a single function within a
431-
module), and must be either `"cdecl"` or `"stdcall"`. The compiler may eventually support other
432-
calling conventions.
428+
This applies to the entire `extern` block, and must be either `"cdecl"` or
429+
`"stdcall"`. The compiler may eventually support other calling conventions.
433430

434431
# Interoperability with foreign code
435432

branches/snap-stage3/doc/tutorial.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2811,7 +2811,7 @@ For every crate you can define a number of metadata items, such as link name, ve
28112811
You can also toggle settings that have crate-global consequences. Both mechanism
28122812
work by providing attributes in the crate root.
28132813

2814-
For example, Rust uniquely identifies crates by their link metadate, which includes
2814+
For example, Rust uniquely identifies crates by their link metadata, which includes
28152815
the link name and the version. It also hashes the filename and the symbols in a binary
28162816
based on the link metadata, allowing you to use two different versions of the same library in a crate
28172817
without conflict.
@@ -2916,7 +2916,7 @@ As well as this line into every module body:
29162916
use std::prelude::*;
29172917
~~~
29182918

2919-
The role of the `prelude` module is to re-exports common definitions from `std`.
2919+
The role of the `prelude` module is to re-export common definitions from `std`.
29202920

29212921
This allows you to use common types and functions like `Option<T>` or `println`
29222922
without needing to import them. And if you need something from `std` that's not in the prelude,

branches/snap-stage3/src/libextra/time.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ static NSEC_PER_SEC: i32 = 1_000_000_000_i32;
1919
pub mod rustrt {
2020
use super::Tm;
2121

22-
#[abi = "cdecl"]
2322
extern {
2423
pub fn get_time(sec: &mut i64, nsec: &mut i32);
2524
pub fn precise_time_ns(ns: &mut u64);

branches/snap-stage3/src/libextra/unicode.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ pub mod icu {
162162

163163
// #[link_name = "icuuc"]
164164
#[link_args = "-licuuc"]
165-
#[abi = "cdecl"]
166165
extern {
167166
pub fn u_hasBinaryProperty(c: UChar32, which: UProperty) -> UBool;
168167
pub fn u_isdigit(c: UChar32) -> UBool;

branches/snap-stage3/src/librustc/lib/llvm.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -300,7 +300,6 @@ pub mod llvm {
300300

301301
#[link_args = "-Lrustllvm -lrustllvm"]
302302
#[link_name = "rustllvm"]
303-
#[abi = "cdecl"]
304303
extern {
305304
/* Create and destroy contexts. */
306305
pub fn LLVMContextCreate() -> ContextRef;

branches/snap-stage3/src/librustdoc/clean.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,7 @@ pub struct Struct {
685685
struct_type: doctree::StructType,
686686
generics: Generics,
687687
fields: ~[Item],
688+
fields_stripped: bool,
688689
}
689690

690691
impl Clean<Item> for doctree::Struct {
@@ -699,6 +700,7 @@ impl Clean<Item> for doctree::Struct {
699700
struct_type: self.struct_type,
700701
generics: self.generics.clean(),
701702
fields: self.fields.clean(),
703+
fields_stripped: false,
702704
}),
703705
}
704706
}
@@ -711,13 +713,15 @@ impl Clean<Item> for doctree::Struct {
711713
pub struct VariantStruct {
712714
struct_type: doctree::StructType,
713715
fields: ~[Item],
716+
fields_stripped: bool,
714717
}
715718

716719
impl Clean<VariantStruct> for syntax::ast::struct_def {
717720
fn clean(&self) -> VariantStruct {
718721
VariantStruct {
719722
struct_type: doctree::struct_type_from_def(self),
720723
fields: self.fields.clean(),
724+
fields_stripped: false,
721725
}
722726
}
723727
}
@@ -726,6 +730,7 @@ impl Clean<VariantStruct> for syntax::ast::struct_def {
726730
pub struct Enum {
727731
variants: ~[Item],
728732
generics: Generics,
733+
variants_stripped: bool,
729734
}
730735

731736
impl Clean<Item> for doctree::Enum {
@@ -739,6 +744,7 @@ impl Clean<Item> for doctree::Enum {
739744
inner: EnumItem(Enum {
740745
variants: self.variants.clean(),
741746
generics: self.generics.clean(),
747+
variants_stripped: false,
742748
}),
743749
}
744750
}

branches/snap-stage3/src/librustdoc/fold.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,9 @@ pub trait DocFolder {
2727
StructItem(i) => {
2828
let mut i = i;
2929
let mut foo = ~[]; swap(&mut foo, &mut i.fields);
30+
let num_fields = foo.len();
3031
i.fields.extend(&mut foo.move_iter().filter_map(|x| self.fold_item(x)));
32+
i.fields_stripped |= num_fields != i.fields.len();
3133
StructItem(i)
3234
},
3335
ModuleItem(i) => {
@@ -36,7 +38,9 @@ pub trait DocFolder {
3638
EnumItem(i) => {
3739
let mut i = i;
3840
let mut foo = ~[]; swap(&mut foo, &mut i.variants);
41+
let num_variants = foo.len();
3942
i.variants.extend(&mut foo.move_iter().filter_map(|x| self.fold_item(x)));
43+
i.variants_stripped |= num_variants != i.variants.len();
4044
EnumItem(i)
4145
},
4246
TraitItem(i) => {
@@ -73,7 +77,9 @@ pub trait DocFolder {
7377
StructVariant(j) => {
7478
let mut j = j;
7579
let mut foo = ~[]; swap(&mut foo, &mut j.fields);
80+
let num_fields = foo.len();
7681
j.fields.extend(&mut foo.move_iter().filter_map(c));
82+
j.fields_stripped |= num_fields != j.fields.len();
7783
VariantItem(Variant {kind: StructVariant(j), ..i2})
7884
},
7985
_ => VariantItem(i2)

branches/snap-stage3/src/librustdoc/html/render.rs

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1265,7 +1265,8 @@ fn render_method(w: &mut io::Writer, meth: &clean::Item, withlink: bool) {
12651265

12661266
fn item_struct(w: &mut io::Writer, it: &clean::Item, s: &clean::Struct) {
12671267
write!(w, "<pre class='struct'>");
1268-
render_struct(w, it, Some(&s.generics), s.struct_type, s.fields, "", true);
1268+
render_struct(w, it, Some(&s.generics), s.struct_type, s.fields,
1269+
s.fields_stripped, "", true);
12691270
write!(w, "</pre>");
12701271

12711272
document(w, it);
@@ -1312,14 +1313,18 @@ fn item_enum(w: &mut io::Writer, it: &clean::Item, e: &clean::Enum) {
13121313
}
13131314
clean::StructVariant(ref s) => {
13141315
render_struct(w, v, None, s.struct_type, s.fields,
1315-
" ", false);
1316+
s.fields_stripped, " ", false);
13161317
}
13171318
}
13181319
}
13191320
_ => unreachable!()
13201321
}
13211322
write!(w, ",\n");
13221323
}
1324+
1325+
if e.variants_stripped {
1326+
write!(w, " // some variants omitted\n");
1327+
}
13231328
write!(w, "\\}");
13241329
}
13251330
write!(w, "</pre>");
@@ -1343,6 +1348,7 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item,
13431348
g: Option<&clean::Generics>,
13441349
ty: doctree::StructType,
13451350
fields: &[clean::Item],
1351+
fields_stripped: bool,
13461352
tab: &str,
13471353
structhead: bool) {
13481354
write!(w, "{}{}{}",
@@ -1368,6 +1374,10 @@ fn render_struct(w: &mut io::Writer, it: &clean::Item,
13681374
_ => unreachable!()
13691375
}
13701376
}
1377+
1378+
if fields_stripped {
1379+
write!(w, " // some fields omitted\n{}", tab);
1380+
}
13711381
write!(w, "\\}");
13721382
}
13731383
doctree::Tuple | doctree::Newtype => {

branches/snap-stage3/src/librustdoc/passes.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,17 +70,13 @@ pub fn strip_private(mut crate: clean::Crate) -> plugins::PluginResult {
7070
}
7171
}
7272

73-
// These are public-by-default (if the enum was public)
74-
clean::VariantItem(*) => {
73+
// These are public-by-default (if the enum/struct was public)
74+
clean::VariantItem(*) | clean::StructFieldItem(*) => {
7575
if i.visibility == Some(ast::private) {
7676
return None;
7777
}
7878
}
7979

80-
// We show these regardless of whether they're public/private
81-
// because it's useful to see sometimes
82-
clean::StructFieldItem(*) => {}
83-
8480
// handled below
8581
clean::ModuleItem(*) => {}
8682

branches/snap-stage3/src/librustdoc/rustdoc.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ pub mod passes;
4848
pub mod plugins;
4949
pub mod visit_ast;
5050

51-
pub static SCHEMA_VERSION: &'static str = "0.8.0";
51+
pub static SCHEMA_VERSION: &'static str = "0.8.1";
5252

5353
type Pass = (&'static str, // name
5454
extern fn(clean::Crate) -> plugins::PluginResult, // fn

branches/snap-stage3/src/libstd/io.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,6 @@ pub type fd_t = c_int;
7676
pub mod rustrt {
7777
use libc;
7878

79-
#[abi = "cdecl"]
8079
#[link_name = "rustrt"]
8180
extern {
8281
pub fn rust_get_stdin() -> *libc::FILE;

0 commit comments

Comments
 (0)