Eli Friedman
b423a0f9ef
Split TyBareFn into TyFnDef and TyFnPtr.
...
There's a lot of stuff wrong with the representation of these types:
TyFnDef doesn't actually uniquely identify a function, TyFnPtr is used to
represent method calls, TyFnDef in the sub-expression of a cast isn't
correctly reified, and probably some other stuff I haven't discovered yet.
Splitting them seems like the right first step, though.
2016-03-09 16:45:28 +02:00
Jeffrey Seyfried
2998564615
Refactor away ExternalExports
2016-03-06 05:46:49 +00:00
Jeffrey Seyfried
cbae67aea7
Fix #21670
2016-03-06 05:46:47 +00:00
Jeffrey Seyfried
d908ff1759
Don't treat associated types specially in def_privacy
...
Improve trait privacy error message
2016-03-04 18:30:24 +00:00
Jeffrey Seyfried
13f5fca0f2
privacy: change def_privacy so that it checks for visiblity instead of nameability
2016-03-04 18:30:22 +00:00
Jeffrey Seyfried
37ba66a66e
Rename middle::ty::ctxt to TyCtxt
2016-03-03 07:37:56 +00:00
bors
7cee8b9ffb
Auto merge of #31824 - jseyfried:privacy_in_resolve, r=nikomatsakis
...
This PR privacy checks paths as they are resolved instead of in `librustc_privacy` (fixes #12334 and fixes #31779 ). This removes the need for the `LastPrivate` system introduced in PR #9735 , the limitations of which cause #31779 .
This PR also reports privacy violations in paths to intra- and inter-crate items the same way -- it always reports the first inaccessible segment of the path.
Since it fixes #31779 , this is a [breaking-change]. For example, the following code would break:
```rust
mod foo {
pub use foo::bar::S;
mod bar { // `bar` should be private to `foo`
pub struct S;
}
}
impl foo::S {
fn f() {}
}
fn main() {
foo::bar::S::f(); // This is now a privacy error
}
```
r? @alexcrichton
2016-03-03 02:21:28 +00:00
Vadim Petrochenkov
9047b201bf
Move span into StructField
...
+ some cleanup in rustdoc
2016-03-02 10:32:04 +03:00
Vadim Petrochenkov
8b60b948d9
Get rid of hir::StructFieldKind
2016-03-02 10:31:19 +03:00
Vadim Petrochenkov
fa427266ee
Some drive-by improvements to SanePrivacyVisitor
...
Check that variant fields are not marked public by syntax extensions
2016-02-26 22:06:39 +03:00
Vadim Petrochenkov
df4821698e
Permit pub
items in blocks
2016-02-26 21:20:56 +03:00
Jeffrey Seyfried
8f32fdecfb
Remove LastPrivate
2016-02-26 00:37:27 +00:00
Jeffrey Seyfried
ec0fdd5a4a
Lay the groundwork for privacy checking in typeck
2016-02-26 00:37:14 +00:00
Jeffrey Seyfried
5172745da7
Warn instead of error when using an inaccessable extern crate
2016-02-24 01:34:39 +00:00
Steve Klabnik
206e86b947
Rollup merge of #31721 - rphmeier:err_tuplestruct_count, r=Manishearth
...
Fixes #31706
Also fixes a phrasing error in the diagnostic.
2016-02-19 14:23:28 -05:00
bors
a9430a359f
Auto merge of #31641 - petrochenkov:reach, r=alexcrichton
...
Fixes https://github.com/rust-lang/rust/issues/16734 and probably some other issues
This is a continuation of https://github.com/rust-lang/rust/pull/29822 , but the algorithm is mostly a copy of https://github.com/rust-lang/rust/pull/29973 , so
r? @alexcrichton or @nikomatsakis
2016-02-18 03:35:21 +00:00
Steve Klabnik
0a88c8fb19
Rollup merge of #31679 - GuillaumeGomez:long_error_explanation, r=Manishearth
...
r? @Manishearth
2016-02-17 18:14:36 -05:00
Vadim Petrochenkov
fadc95e60a
Check reachability insead of publicity for fields and inherent impl items
...
Purely for consistency with other items, it doesn't make any semantic difference
2016-02-18 01:10:21 +03:00
Vadim Petrochenkov
767a447470
privacy: Mark reachable but unnameable items as reachable
2016-02-18 01:04:28 +03:00
rphmeier
94499e3385
Fix sentence in E0451 diagnostic.
2016-02-16 21:31:50 -05:00
rphmeier
bf3ff77ec8
Fix #31706
2016-02-16 20:31:52 -05:00
Vadim Petrochenkov
06755d90ce
Split PatKind::Enum into PatKind::TupleStruct and PatKind::Path
2016-02-16 00:40:38 +03:00
ggomez
1c8766761e
Global error explanations improvements
2016-02-15 17:57:21 +01:00
Vadim Petrochenkov
9b40e1e5b3
Rename hir::Pat_ and its variants
2016-02-14 15:25:12 +03:00
bors
3548b8c273
Auto merge of #31524 - jonas-schievink:autoderef, r=steveklabnik
2016-02-13 00:16:03 +00:00
Jonas Schievink
650c082b1e
Autoderef in librustc_privacy
2016-02-12 19:28:42 +01:00
bors
ce4b75f256
Auto merge of #30726 - GuillaumeGomez:compile-fail, r=brson
...
r? @brson
cc @alexcrichton
I still need to add error code explanation test with this, but I can't figure out a way to generate the `.md` files in order to test example source codes.
Will fix #27328 .
2016-02-12 18:25:08 +00:00
Alex Crichton
2581b14147
bootstrap: Add a bunch of Cargo.toml files
...
These describe the structure of all our crate dependencies.
2016-02-11 11:12:32 -08:00
Guillaume Gomez
6407b9405f
Update long error explanations
2016-02-07 13:03:35 +01:00
Alex Crichton
2273b52023
mk: Move from -D warnings
to #![deny(warnings)]
...
This commit removes the `-D warnings` flag being passed through the makefiles to
all crates to instead be a crate attribute. We want these attributes always
applied for all our standard builds, and this is more amenable to Cargo-based
builds as well.
Note that all `deny(warnings)` attributes are gated with a `cfg(stage0)`
attribute currently to match the same semantics we have today
2016-01-24 20:35:55 -08:00
Vadim Petrochenkov
2084c2c33a
Rename Def's variants and don't reexport them
2016-01-20 22:31:10 +03:00
Vadim Petrochenkov
ceaaa1bc33
Refactor definitions of ADTs in rustc::middle::def
2016-01-20 21:50:57 +03:00
Manish Goregaokar
22cbdd4b89
Rollup merge of #30864 - jseyfried:no_record_exports, r=nrc
2016-01-15 17:28:29 +05:30
Jeffrey Seyfried
a353490e6f
resolve: Remove record_exports, fixes #4953
2016-01-14 22:51:58 +00:00
Niko Matsakis
259379426c
Revamp the "future incompatible" section to clarify the situation
...
better
2016-01-12 12:53:55 -05:00
Niko Matsakis
005fa14358
Annotate the compiler with information about what it is doing when.
2016-01-05 21:05:50 -05:00
Nick Cameron
95dc7efad0
use structured errors
2015-12-30 14:27:59 +13:00
Alex Crichton
cd1848a1a6
Register new snapshots
...
Lots of cruft to remove!
2015-12-21 09:26:21 -08:00
Vadim Petrochenkov
785cbe0200
Do not substitute type aliases during error reporting
...
Type aliases are still substituted when determining impl publicity
2015-12-18 20:57:36 +03:00
Vadim Petrochenkov
187c89a92a
Address the comments
2015-12-18 04:14:46 +03:00
Vadim Petrochenkov
fcbd553f0f
Substitute type aliases before checking for privacy
2015-12-18 04:14:46 +03:00
Vadim Petrochenkov
a745614f44
Use lint instead of warning
2015-12-18 04:14:46 +03:00
Vadim Petrochenkov
1a9239c964
Report errors not caught by the old visitor as warnings
2015-12-18 04:14:46 +03:00
Vadim Petrochenkov
a09246ad34
Approximate type aliases as public when determining impl publicity
2015-12-18 04:12:31 +03:00
Vadim Petrochenkov
f8ae31f601
Update error messages and error descriptions
2015-12-18 04:12:31 +03:00
Vadim Petrochenkov
f3f27a5c64
Rewrite VisiblePrivateTypesVisitor
2015-12-18 04:12:31 +03:00
Jeffrey Seyfried
8364a6feef
Remove unused imports
2015-12-17 05:43:27 +00:00
Vadim Petrochenkov
be8ace8cac
Remove all uses of #[staged_api]
2015-11-25 21:55:26 +03:00
Manish Goregaokar
352853c18b
Register diagnostics for rustc_privacy and rustc_trans properly
...
fixes #29665
2015-11-22 10:26:22 +05:30
Vadim Petrochenkov
c1ad5af4a6
Changes to data produced by privacy pass
2015-11-19 14:16:35 +03:00