Commit graph

59 commits

Author SHA1 Message Date
Pietro Albini
d3f6d61fe1
Rollup merge of #56663 - Zoxc:resolver-lifetime, r=pnkfelix
Remove lifetime from Resolver
2018-12-19 11:47:05 +01:00
Alex Crichton
cf47a19305 Bump to 1.33.0
* Update bootstrap compiler
* Update version to 1.33.0
* Remove some `#[cfg(stage0)]` annotations

Actually updating the version number is blocked on updating Cargo
2018-12-12 08:09:26 -08:00
Andy Russell
56413ecffc
fix intra-link resolution spans in block comments
This commit improves the calculation of code spans for intra-doc
resolution failures. All sugared doc comments should now have the
correct spans, including those where the comment is longer than the
docs.

It also fixes an issue where the spans were calculated incorrectly for
certain unsugared doc comments. The diagnostic will now always use the
span of the attributes, as originally intended.

Fixes #55964.
2018-12-10 21:08:26 -05:00
John Kåre Alsaker
ca7de869ea Remove lifetime from Resolver 2018-12-10 06:38:27 +01:00
Alexander Regueiro
ee89c088b0 Various minor/cosmetic improvements to code 2018-12-07 23:53:34 +00:00
John Kåre Alsaker
a70babed03 Use a function to access the Hir map to be able to turn it into a query later 2018-12-06 17:24:36 +01:00
Guillaume Gomez
9aedfd5a3b
Rollup merge of #55367 - GuillaumeGomez:private-item-doc-test-lint, r=QuietMisdreavus
lint if a private item has doctests

Fixes #55333.

r? @QuietMisdreavus
2018-11-22 10:37:43 +01:00
Eduard-Mihai Burtescu
da622a3796 rustc: remove {FxHash,Node,DefId,HirId,ItemLocal}{Map,Set} "constructor" fns. 2018-11-21 07:27:02 +02:00
bors
9e8a982a23 Auto merge of #56051 - pietroalbini:rollup, r=pietroalbini
Rollup of 25 pull requests

Successful merges:

 - #55562 (Add powerpc- and powerpc64-unknown-linux-musl targets)
 - #55564 (test/linkage-visibility: Ignore on musl targets)
 - #55827 (A few tweaks to iterations/collecting)
 - #55834 (Forward the ABI of the non-zero sized fields of an union if they have the same ABI)
 - #55857 (remove unused dependency)
 - #55862 (in which the E0618 "expected function" diagnostic gets a makeover)
 - #55867 (do not panic just because cargo failed)
 - #55894 (miri enum discriminant handling: Fix treatment of pointers, better error when it is undef)
 - #55916 (Make miri value visitor useful for mutation)
 - #55919 (core/tests/num: Simplify `test_int_from_str_overflow()` test code)
 - #55923 (reword #[test] attribute error on fn items)
 - #55949 (ty: return impl Iterator from Predicate::walk_tys)
 - #55952 (Update to Clang 7 on CI.)
 - #55953 (#53488 Refactoring UpvarId)
 - #55962 (rustdoc: properly calculate spans for intra-doc link resolution errors)
 - #55963 (Stress test for MPSC)
 - #55968 (Clean up some non-mod-rs stuff.)
 - #55970 (Miri backtrace improvements)
 - #56007 (CTFE: dynamically make sure we do not call non-const-fn)
 - #56011 (Replace data.clone() by Arc::clone(&data) in mutex doc.)
 - #56012 (avoid shared ref in UnsafeCell::get)
 - #56016 (Add VecDeque::resize_with)
 - #56027 (docs: Add missing backtick in object_safety.rs docs)
 - #56043 (remove "approx env bounds" if we already know from trait)
 - #56059 (Increase `Duration` approximate equal threshold to 1us)
2018-11-19 14:07:45 +00:00
Pietro Albini
f13d16621e
Rollup merge of #55962 - QuietMisdreavus:tricky-spans, r=GuillaumeGomez
rustdoc: properly calculate spans for intra-doc link resolution errors

Fixes https://github.com/rust-lang/rust/issues/55723

When rustdoc is reporting a resolution error for intra-doc links, it needs to convert a span from one relative to the *markdown* (as the links are only found on the final markdown text) to one relative to the *source code* (as the error reporting is meant to show where the line is in the source, so the user can fix it). However, a calculation for how much "offset" to apply had a subtle error: it trimmed the whole line when attempting to account for leading indentation. This caused it to add in *trailing* whitespace into this calculation, which created an incorrect span.

In a lot of situations, this isn't a problem - the span will be shifted in the code slightly, but the warning will still be displayed and mostly legible. However, there is one important situation where this can cause an ICE: multi-byte codepoints. If a shifted span now has a starting point in the middle of a multi-byte codepoint, libsyntax will panic when trying to track what source item it corresponds to. This flew under our radar because trailing whitespace and multi-byte codepoints are both situations that we don't run into in the compiler repo.

(There is one more situation where this can error, that will be much harder to fix: block-style doc comments. Lines in a block-style doc comment have a zero-or-more (usually one) character offset per line, causing this calculation to be way off. I'm punting that to another issue, though...)
2018-11-19 22:06:22 +08:00
Vadim Petrochenkov
f492e9421f resolve: Support resolving macros without leaving traces 2018-11-18 13:57:37 +03:00
Guillaume Gomez
675319e558 lint if a private item has doctests 2018-11-16 14:29:44 +01:00
QuietMisdreavus
aa3d7a4e6e properly calculate spans for intra-doc link resolution errors 2018-11-14 18:14:31 -06:00
Oliver Scherer
4bf7c33b79 Fix rustdoc 2018-11-12 10:29:53 +01:00
Guillaume Gomez
2def81a5f1 Store nightly build instead of checking env var every time 2018-10-09 16:47:14 +02:00
Guillaume Gomez
d6385631f4 Add lint for doc without codeblocks 2018-10-09 16:47:12 +02:00
QuietMisdreavus
aea1bd0a59 handle proc-macros as macros instead of functions 2018-09-25 14:56:43 -05:00
QuietMisdreavus
1106577116 fix intra-links for trait impls 2018-09-20 05:54:31 -05:00
QuietMisdreavus
755c02dbd4 filter collected trait impls against items in the crate 2018-09-20 05:54:30 -05:00
QuietMisdreavus
354507e61f shuffle ownership of external_traits
constraints:

- clean/inline.rs needs this map to fill in traits when inlining
- fold.rs needs this map to allow passes to fold trait items
- html/render.rs needs this map to seed the Cache.traits map of all
  known traits

The first two are the real problem, since `DocFolder` only operates on
`clean::Crate` but `clean/inline.rs` only sees the `DocContext`. The
introduction of early passes means that these two now exist at the same
time, so they need to share ownership of the map. Even better, the use
of `Crate` in a rustc thread pool means that it needs to be Sync, so it
can't use `Lrc<Lock>` to manually activate thread-safety.

`parking_lot` is reused from elsewhere in the tree to allow use of its
`ReentrantMutex`, as the relevant parts of rustdoc are still
single-threaded and this allows for easier use in that context.
2018-09-20 05:54:26 -05:00
QuietMisdreavus
c754e8240c refactor: move access_levels into RenderInfo 2018-09-20 05:42:38 -05:00
QuietMisdreavus
87760e5f5e collect auto-/blanket-impls during collect-trait-impls 2018-09-20 05:42:37 -05:00
QuietMisdreavus
7e70fee0c7 add more tests for traits-in-non-module-scope 2018-09-20 05:42:35 -05:00
QuietMisdreavus
a45d38744c swap external_traits into the crate before running strip_hidden 2018-09-20 05:42:32 -05:00
QuietMisdreavus
a893117f38 add a bunch of debug prints 2018-09-20 05:42:27 -05:00
QuietMisdreavus
6aa74939bf only move access_levels/external_traits after early passes 2018-09-20 05:42:24 -05:00
QuietMisdreavus
02bea3c581 rustdoc: collect trait impls as an early pass 2018-09-20 05:42:20 -05:00
bors
6ff0b2ed16 Auto merge of #53751 - F001:tuple-struct-self-ctor, r=petrochenkov,varkor
Implement RFC 2302: tuple_struct_self_ctor

Tracking issue: https://github.com/rust-lang/rust/issues/51994
2018-09-14 03:34:14 +00:00
F001
2157958b27 introduce SelfCtor 2018-09-13 12:27:29 +08:00
Vadim Petrochenkov
1b6be5a1ca resolve: Put different parent scopes into a single structure 2018-09-13 05:10:45 +03:00
varkor
8a5dccde2a Remove Ty prefix from Ty{Bool|Char|Int|Uint|Float|Str} 2018-08-22 16:08:49 +01:00
varkor
6f637da50c Remove Ty prefix from Ty{Adt|Array|Slice|RawPtr|Ref|FnDef|FnPtr|Dynamic|Closure|Generator|GeneratorWitness|Never|Tuple|Projection|Anon|Infer|Error} 2018-08-22 16:07:44 +01:00
Vadim Petrochenkov
23e9a1def5 resolve: Consolidate error reporting for resolved macros in fn resolve_macro_to_def 2018-08-20 23:12:36 +03:00
Vadim Petrochenkov
3a44ee68fb resolve: Move derive attribute detection closer to other macro ident resolution code
Refactor away `fn resolve_invoc_to_def`
2018-08-20 23:12:36 +03:00
QuietMisdreavus
323b2b71ec only abort after all early passes have run 2018-08-04 22:20:45 -05:00
QuietMisdreavus
bef0f2576d don't process intra-links on extern-crate items 2018-08-04 22:20:45 -05:00
QuietMisdreavus
9e4e266877 turn intra-doc-link collection into an early pass 2018-08-04 22:20:45 -05:00
QuietMisdreavus
d3d6f76887 introduce "early passes" an convert a few over 2018-08-04 18:49:57 -05:00
QuietMisdreavus
aaec1014d8 strongly-typed passes 2018-08-04 18:44:05 -05:00
Mark Rousskov
620c4fdf53 Delete unused code in rustdoc 2018-07-30 16:33:56 -06:00
QuietMisdreavus
0db4317709 rustdoc: rework how default passes are chosen 2018-07-26 15:33:25 -05:00
steveklabnik
86d2ba4f59 remove pluginmanager 2018-07-24 16:44:52 -04:00
Oliver Schneider
53d2ebb0ad Implement existential types 2018-07-18 10:53:08 +02:00
Guillaume Gomez
ebee483e24 Add doc keyword support 2018-06-04 09:51:41 +02:00
John Kåre Alsaker
022dff47e3 Add a Rayon thread pool 2018-05-13 01:28:20 +02:00
leonardo.yvens
f93183adb4 Remove impl Foo for .. in favor of auto trait Foo
No longer parse it.
Remove AutoTrait variant from AST and HIR.
Remove backwards compatibility lint.
Remove coherence checks, they make no sense for the new syntax.
Remove from rustdoc.
2018-01-13 18:48:00 +03:00
Christian Duerr
1df13c057a
Hide trait impl with private trait type parameter
Trait's implementations with private type parameters were displayed in
the implementing struct's documentation until now.

With this change any trait implementation that uses a private type
parameter is now hidden in the docs.
2017-11-30 21:18:36 +01:00
QuietMisdreavus
f9f3611f5c allow loading external files in documentation
Partial implementation of https://github.com/rust-lang/rfcs/pull/1990
(needs error reporting work)

cc #44732
2017-11-21 15:46:49 -06:00
leonardo.yvens
06506bb751 [Syntax Breaking] Rename DefaultImpl to AutoImpl
DefaultImpl is a highly confusing name for what we now call auto impls,
as in `impl Send for ..`. The name auto impl is not formally decided
but for sanity anything is better than `DefaultImpl` which refers
neither to `default impl` nor to `impl Default`.
2017-11-03 16:13:20 -02:00
Paul Lietar
77f7e85d7f Implement RFC 1861: Extern types 2017-10-27 23:01:34 +02:00