Commit Graph

242 Commits

Author SHA1 Message Date
Tamir Duberstein
10f15e72e6 Negative case of len() -> is_empty()
`s/([^\(\s]+\.)len\(\) [(?:!=)>] 0/!$1is_empty()/g`
2015-04-14 20:26:03 -07:00
Tamir Duberstein
29ac04402d Positive case of len() -> is_empty()
`s/(?<!\{ self)(?<=\.)len\(\) == 0/is_empty()/g`
2015-04-14 20:26:03 -07:00
Alex Crichton
77d164d809 rustdoc: Index inherent methods on primitives
The set of types which can have an inherent impl changed slightly and rustdoc
just needed to catch up to understand what it means to see a `impl str`!

Closes #23511
2015-04-07 17:54:35 -07:00
Alex Crichton
2b9076ee19 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
2015-04-07 17:54:34 -07:00
Alex Crichton
6950f68870 rustdoc: Simplify predicates with paren notation
This change is aimed at improving cross-crate (inlined) notation of generic
closures. The change modifies `simplify::where_predicates` to handle
parenthesized notation as well as starting to handle supertrait bounds as well.
This was necessary because all output constraints of closures are bound to
`FnOnce` but most trait bounds are that of `FnMut`.

Close #21801
2015-04-07 17:54:34 -07:00
Alex Crichton
d7fcee8347 rustdoc: Detect provided methods on inlined traits
Closes #23864
2015-04-07 17:54:34 -07:00
Alex Crichton
75ef0832ae rustdoc: Improve handling inlined associated types
* All bounds are now discovered through the trait to be inlined.
* The `?Sized` bound now renders correctly for inlined associated types.
* All `QPath`s (`<A as B>::C`) instances are rendered as `A::C` where `C` is a
  hyperlink to the trait `B`. This should improve at least how the docs look at
  least.
* Supertrait bounds are now separated and display as the source lists them.

Closes #20727
Closes #21145
2015-04-07 17:54:34 -07:00
Alex Crichton
11f26f9995 rustdoc: Simplify cross-crate where clauses
Add a custom module to rustdoc which simplifies the output of `middle::ty` into
a more readable form which tends to be written down anyway!

Closes #20646
2015-04-07 17:54:34 -07:00
Alex Crichton
179719d450 rustdoc: Allowing specifying attrs for doctests
This adds support in rustdoc to blanket apply crate attributes to all doc tests
for a crate at once. The syntax for doing this is:

    #![doc(test(attr(...)))]

Each meta item in `...` will be applied to each doctest as a crate attribute.

cc #18199
2015-04-07 17:54:34 -07:00
Alex Crichton
9ad133b4a1 rustdoc: Add a primitive page for raw pointers
Closes #15318
2015-04-07 17:54:33 -07:00
Alex Crichton
458102eefa rustdoc: Run external traits through filters
This ensures that all external traits are run through the same filters that the
rest of the AST goes through, stripping hidden function as necessary.

Closes #13698
2015-04-07 17:54:33 -07:00
Alex Crichton
0304e15e5c Test fixes and rebase conflicts, round 1 2015-04-01 15:38:59 -07:00
Alex Crichton
43bfaa4a33 Mass rename uint/int to usize/isize
Now that support has been removed, all lingering use cases are renamed.
2015-03-26 12:10:22 -07:00
Alex Crichton
19510ac70b rollup merge of #23633: tomjakubowski/rustdoc-array-prim
Previously, impls for `[T; n]` were collected in the same place as impls for `[T]` and `&[T]`. This splits them out into their own primitive page in both core and std.
2015-03-23 15:11:06 -07:00
Aaron Turon
8389253df0 Add generic conversion traits
This commit:

* Introduces `std::convert`, providing an implementation of
RFC 529.

* Deprecates the `AsPath`, `AsOsStr`, and `IntoBytes` traits, all
in favor of the corresponding generic conversion traits.

  Consequently, various IO APIs now take `AsRef<Path>` rather than
`AsPath`, and so on. Since the types provided by `std` implement both
traits, this should cause relatively little breakage.

* Deprecates many `from_foo` constructors in favor of `from`.

* Changes `PathBuf::new` to take no argument (creating an empty buffer,
  as per convention). The previous behavior is now available as
  `PathBuf::from`.

* De-stabilizes `IntoCow`. It's not clear whether we need this separate trait.

Closes #22751
Closes #14433

[breaking-change]
2015-03-23 15:01:45 -07:00
Tom Jakubowski
2df8830642 rustdoc: Support for "array" primitive
Impls on `clean::Type::FixedVector` are now collected in the array
primitive page instead of the slice primitive page.

Also add a primitive docs for arrays to `std`.
2015-03-23 14:02:34 -07:00
Alex Crichton
4e25765aa2 rustdoc: Fix ICE with cross-crate default impls
This adds a special code path for impls which are listed as default impls to
ensure that they're loaded correctly.
2015-03-12 21:01:49 -07:00
Eduard Burtescu
9da918548d syntax: move MethMac to MacImplItem and combine {Provided,Required}Method into MethodTraitItem. 2015-03-11 23:39:16 +02:00
Eduard Burtescu
ce10fa8d12 syntax: rename TypeMethod to MethodSig and use it in MethDecl. 2015-03-11 23:39:16 +02:00
Eduard Burtescu
f98b176314 syntax: gather common fields of impl & trait items into their respective types. 2015-03-11 23:39:16 +02:00
Alex Crichton
95d904625b std: Deprecate std::old_io::fs
This commit deprecates the majority of std::old_io::fs in favor of std::fs and
its new functionality. Some functions remain non-deprecated but are now behind a
feature gate called `old_fs`. These functions will be deprecated once
suitable replacements have been implemented.

The compiler has been migrated to new `std::fs` and `std::path` APIs where
appropriate as part of this change.
2015-03-04 15:59:30 -08:00
Niko Matsakis
36d04711b7 Remove bounds struct from TypeParameterDef. Bounds information is now
exclusively stored in the where clauses.
2015-02-24 16:27:22 -05:00
Eduard Burtescu
d31b9ebef5 Implement <T>::method UFCS expression syntax. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
5a6a9ed792 rustc: combine partial_def_map and last_private_map into def_map. 2015-02-24 14:16:02 +02:00
Eduard Burtescu
5809f8ae74 rustc_resolve: use the visitor model more, remove redundant repeated lookups. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
ffb8092ccf syntax: use a single Path for Trait::Item in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
326711e9bd rustc_resolve: use DefAssociatedTy for TyQPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
004df413aa syntax: don't use TraitRef in QPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
a817c69297 syntax: don't store a secondary NodeId for TyPath. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
27747ac1a7 Revert bogus rename from DefTrait to DefaultImpl. 2015-02-24 14:14:16 +02:00
Eduard Burtescu
7a8a5172a5 Remove ty_open and treat Unsized lvalues as *Unsized. 2015-02-24 08:40:14 +02:00
bors
2890508d97 Auto merge of #21689 - FlaPer87:oibit-send-and-friends, r=nikomatsakis
This is one more step towards completing #13231

This series of commits add support for default trait implementations. The changes in this PR don't break existing code and they are expected to preserve the existing behavior in the compiler as far as built-in bounds checks go.

The PR adds negative implementations of `Send`/`Sync` for some types and it removes the special cases for `Send`/`Sync` during the trait obligations checks. That is, it now fully relies on the traits check rather than lang items.

Once this patch lands and a new snapshot is created, it'll be possible to add default impls for `Send` and `Sync` and remove entirely the use of `BuiltinBound::{BoundSend,BoundSync}` for positive implementations as well.

This PR also removes the restriction on negative implementations. That is, it is now possible to add negative implementations for traits other than `Send`/`Sync`
2015-02-24 02:22:44 +00:00
Flavio Percoco
d38aab397e Rename DefTrait to DefaultImpl 2015-02-22 02:14:25 +01:00
Niko Matsakis
68e5bb3f2c Remove remaining uses of []. This time I tried to use deref coercions where possible. 2015-02-20 14:08:14 -05:00
Simonas Kazlauskas
6a67d86000 Count and show the deprecated attribute again
Since we don’t have Deprecated stability level anymore, the only other source of information is
deprecated-since version, which conveniently to us, only exists if the symbol is deprecated.

Fixes #21789
2015-02-15 00:39:37 +02:00
Niko Matsakis
3e88b5bbf9 Rote changes to fix fallout throughout the compiler from splitting the
predicates and renaming some things.
2015-02-12 13:29:51 -05:00
bors
cdaf3a4393 Auto merge of #21999 - tomjakubowski:rustdoc-fixes, r=alexcrichton
r? @alexcrichton
2015-02-08 06:15:52 +00:00
bors
7ebf9bc5c2 Auto merge of #21505 - GuillaumeGomez:interned_string, r=alexcrichton
It's in order to make the code more homogeneous.
2015-02-07 02:04:47 +00:00
GuillaumeGomez
a2e01c62d5 librustdoc has been updated
Fixes run build error

Fix test failure

Fix tests' errors
2015-02-06 22:54:41 +01:00
Tom Jakubowski
abae840f45 rustdoc: Show non-Rust ABIs on methods
Fix #21621
2015-02-06 01:02:15 -08:00
Felix S. Klock II
fa9d2230a6 make codemap more robust in face of ill-formed spans.
This can be considered partial work on #8256.

The main observable change: macro expansion sometimes results in spans
where `lo > hi`; so for now, when we have such a span, do not attempt
to return a snippet result.

(Longer term, we might think about whether we could still present a
snippet for the cases where this arises, e.g. perhaps by showing the
whole macro as the snippet, assuming that is the sole cause of such
spans; or by somehow looking up the closest AST node that holds both
`lo` and `hi`, and showing that.)

As a drive-by, revised the API to return a `Result` rather than an
`Option`, with better information-packed error value that should help
us (and maybe also our users) identify the causes of such problems in
the future.  Ideally the call-sites that really want an actual snippet
would be updated to catch the newly added `Err` case and print
something meaningful about it, but that is not part of this PR.
2015-02-05 23:47:17 +01:00
Jorge Aparicio
17bc7d8d5b cleanup: replace as[_mut]_slice() calls with deref coercions 2015-02-05 13:45:01 -05:00
Aaron Turon
3e39f0bc0e Rename std::path to std::old_path
As part of [RFC 474](https://github.com/rust-lang/rfcs/pull/474), this
commit renames `std::path` to `std::old_path`, leaving the existing path
API in place to ease migration to the new one. Updating should be as
simple as adjusting imports, and the prelude still maps to the old path
APIs for now.

[breaking-change]
2015-02-03 14:34:42 -08:00
Jorge Aparicio
d5f61b4332 for x in xs.iter_mut() -> for x in &mut xs
Also `for x in option.iter_mut()` -> `if let Some(ref mut x) = option`
2015-02-02 13:40:18 -05:00
Jorge Aparicio
d5d7e6565a for x in xs.iter() -> for x in &xs 2015-02-02 13:40:18 -05:00
Seo Sanghyeon
6a1a46e8d7 Avoid an excessive use of iterator chain 2015-02-02 18:33:24 +09:00
Alex Crichton
16120e9a1f rollup merge of #21693: tomjakubowski/rustdoc-fix-21442
Fix #21442
2015-01-30 12:02:55 -08:00
Tom Jakubowski
1cf684ca94 rustdoc: Render new self syntax in use
Fix #21442
2015-01-29 11:03:25 -08:00
Jorge Aparicio
788181d405 s/Show/Debug/g 2015-01-29 07:49:02 -05:00
Niko Matsakis
ac94ae5883 Update Rustdoc to deal with the Fn return type being an associated type. 2015-01-28 05:15:24 -05:00