Vadim Petrochenkov
c3f53d1b12
Resolve prefix in imports with empty braces
2015-09-17 14:13:14 +03:00
Nick Cameron
e9f1b06329
Use ast attributes every where (remove HIR attributes).
...
This could be a [breaking-change] if your lint or syntax extension (is that even possible?) uses HIR attributes or literals.
2015-09-16 10:57:06 +12:00
bors
7161530fc4
Auto merge of #28406 - petrochenkov:primitive, r=eddyb
...
This was missing from https://github.com/rust-lang/rust/pull/27451
r? @eddyb
2015-09-15 11:35:11 +00:00
Vadim Petrochenkov
cfa2925f2e
Prohibit renaming to primitive types' names in import lists
2015-09-15 01:07:17 +03:00
Alex Crichton
f0b1326dc7
std: Stabilize/deprecate features for 1.4
...
The FCP is coming to a close and 1.4 is coming out soon, so this brings in the
libs team decision for all library features this cycle.
Stabilized APIs:
* `<Box<str>>::into_string`
* `Arc::downgrade`
* `Arc::get_mut`
* `Arc::make_mut`
* `Arc::try_unwrap`
* `Box::from_raw`
* `Box::into_raw`
* `CStr::to_str`
* `CStr::to_string_lossy`
* `CString::from_raw`
* `CString::into_raw`
* `IntoRawFd::into_raw_fd`
* `IntoRawFd`
* `IntoRawHandle::into_raw_handle`
* `IntoRawHandle`
* `IntoRawSocket::into_raw_socket`
* `IntoRawSocket`
* `Rc::downgrade`
* `Rc::get_mut`
* `Rc::make_mut`
* `Rc::try_unwrap`
* `Result::expect`
* `String::into_boxed_slice`
* `TcpSocket::read_timeout`
* `TcpSocket::set_read_timeout`
* `TcpSocket::set_write_timeout`
* `TcpSocket::write_timeout`
* `UdpSocket::read_timeout`
* `UdpSocket::set_read_timeout`
* `UdpSocket::set_write_timeout`
* `UdpSocket::write_timeout`
* `Vec::append`
* `Vec::split_off`
* `VecDeque::append`
* `VecDeque::retain`
* `VecDeque::split_off`
* `rc::Weak::upgrade`
* `rc::Weak`
* `slice::Iter::as_slice`
* `slice::IterMut::into_slice`
* `str::CharIndices::as_str`
* `str::Chars::as_str`
* `str::split_at_mut`
* `str::split_at`
* `sync::Weak::upgrade`
* `sync::Weak`
* `thread::park_timeout`
* `thread::sleep`
Deprecated APIs
* `BTreeMap::with_b`
* `BTreeSet::with_b`
* `Option::as_mut_slice`
* `Option::as_slice`
* `Result::as_mut_slice`
* `Result::as_slice`
* `f32::from_str_radix`
* `f64::from_str_radix`
Closes #27277
Closes #27718
Closes #27736
Closes #27764
Closes #27765
Closes #27766
Closes #27767
Closes #27768
Closes #27769
Closes #27771
Closes #27773
Closes #27775
Closes #27776
Closes #27785
Closes #27792
Closes #27795
Closes #27797
2015-09-11 09:48:48 -07:00
Niko Matsakis
004d70212a
track, for each upvar, its index in list of upvars
2015-09-06 07:27:22 -04:00
Simonas Kazlauskas
d8074e65b0
Use proper span for break and continue labels
...
Fixes #28109
2015-09-03 03:50:43 +03:00
Nick Cameron
facdf2ebb1
Add an intital HIR and lowering step
2015-09-03 10:02:36 +12:00
Ms2ger
2076cddcf2
Rename FnKind variants and stop re-exporting them from the visit module.
...
There is no longer a need for that pattern, since enums are now qualified.
2015-08-26 12:02:58 +02:00
bors
797d0ba59c
Auto merge of #27857 - Manishearth:improve-fnkind, r=pnkfelix
...
Since enums are namespaced now, should we also remove the `Fk` prefixes from `FnKind` and remove the reexport? (The reexport must be removed because otherwise it clashes with glob imports containing `ItemFn`). IMO writing `FnKind::Method` is much clearer than `FkMethod`.
2015-08-24 12:47:57 +00:00
Niko Matsakis
c0de23de81
convert to use is_local instead of == LOCAL_CRATE
2015-08-24 05:35:34 -04:00
Niko Matsakis
e91bef2e05
fallout from moving def-id
2015-08-24 05:35:34 -04:00
Alexis Beingessner
5bbaa3c9ac
fallout of reworking rc and arc APIs
2015-08-19 15:52:12 -07:00
bors
e47eb7c2c8
Auto merge of #27493 - GSam:master, r=nrc
...
In order to test the validity of identifiers, exposing the name resolution module is necessary. Other changes mostly comprise of exposing modules publicly like parts of save-analysis, so they can be called appropriately.
2015-08-19 03:50:05 +00:00
Manish Goregaokar
c03bf18b84
FnFnBlock -> FkClosure
2015-08-16 18:23:58 +05:30
Alex Crichton
2972b77134
Add issue for the rustc_private feature everywhere
2015-08-15 18:09:17 -07:00
Alex Crichton
737397c584
rollup merge of #27622 : eefriedman/https-url
...
Also fixes a few outdated links.
2015-08-11 22:11:25 -07:00
Garming Sam
fc9ecae444
Modify the callback to be run from a macro
2015-08-10 19:12:47 +12:00
Eli Friedman
bbbfed2f93
Use https URLs to refer to rust-lang.org where appropriate.
...
Also fixes a few outdated links.
2015-08-09 14:28:46 -07:00
Garming Sam
fdba872944
Add a proper comment for create_resolver
2015-08-09 21:09:55 +12:00
Garming Sam
8b98256f64
Remove some duplicated code with new create_resolver
2015-08-09 20:54:12 +12:00
Garming Sam
251696ed0d
Remove unused language items
2015-08-09 20:54:11 +12:00
Garming Sam
ff6dd5c24b
Avoid change to current module on escape from callback
2015-08-09 20:54:11 +12:00
Garming Sam
f4ea3928ac
Introduce callback to resolver
...
Sets a flag to pass through the rest of the walker.
2015-08-09 20:53:57 +12:00
Victor Berger
8e24091f98
Factor inc/dec count methods.
2015-08-06 12:47:10 +02:00
Victor Berger
b69bf1153d
Block import resolution only on 'pub' imports.
...
When resolving 'use' statements, only consider pub imports of the
target module as blocking.
Closes #4865
2015-08-05 21:57:27 +02:00
bors
6a3545ef05
Auto merge of #27439 - vberger:more_perseverant_resolve, r=nrc
...
(This is a second try at #26242 . This time I think things should be ok.)
The current algorithm handling import resolutions works sequentially, handling imports in the order they appear in the source file, and blocking/bailing on the first one generating an error/being unresolved.
This can lead to situations where the order of the `use` statements can make the difference between "this code compiles" and "this code fails on an unresolved import" (see #18083 for example). This is especially true when considering glob imports.
This PR changes the behaviour of the algorithm to instead try to resolve all imports in a module. If one fails, it is recorded and the next one is tried (instead of directly giving up). Also, all errors generated are stored (and not reported directly).
The main loop of the algorithms guaranties that the algorithm will always finish: if a round of resolution does not resolve anything new, we are stuck and give up. At this point, the new version of the algorithm will display all errors generated by the last round of resolve. This way we are sure to not silence relevant errors or help messages, but also to not give up too early.
**As a consequence, the import resolution becomes independent of the order in which the `use` statements are written in the source files.** I personally don't see any situations where this could be a problem, but this might need some thought.
I passed `rpass` and `cfail` tests on my computer, and now am compiling a full stage2 compiler to ensure the crates reporting errors in my previous attempts still build correctly. I guess once I have checked it, this will need a crater run?
Fixes #18083 .
r? @alexcrichton , cc @nrc @brson
2015-08-05 03:52:39 +00:00
Manish Goregaokar
6be272cff5
Rollup merge of #27491 - GuillaumeGomez:patch-4, r=Manishearth
2015-08-04 18:00:53 +05:30
Eduard Burtescu
a34b0a4691
rustc: replace def::MethodProvenance with ty::ImplOrTraitItemContainer.
2015-08-04 01:16:53 +03:00
Guillaume Gomez
d6f713be3f
Improve E0423 error message
2015-08-03 10:43:13 +02:00
Victor Berger
96041ccd10
More perseverant about indeterminate imports.
...
Most errors generated by resolve might be caused by
not-yet-resolved glob imports. This changes the behavior of the
resolve imports algorithms to not fail prematurally on first
error, but instead buffer intermediate errors and report them
only when stuck.
Fixes #18083
2015-07-31 19:10:14 +02:00
Victor Berger
88c2914e56
Remove unused resolve error message.
...
There is not situation where `foo` would be unresolved but not `foo::*`.
2015-07-31 19:10:14 +02:00
bors
6fcf62831e
Auto merge of #27349 - arielb1:constant-at, r=alexcrichton
...
Fixes #27033
Fixes #27077
r? @alexcrichton
2015-07-29 08:23:04 +00:00
Ariel Ben-Yehuda
757b0c176f
prohibit the lhs of an @-pattern being a constant
...
as this breaks code that worked under some conditions, this is a
[breaking-change]
Fixes #27033
Fixes #27077
2015-07-28 19:51:08 +03:00
Oliver Schneider
00a5e66f81
remove get_ident and get_name, make as_str sound
2015-07-28 18:07:20 +02:00
Andrew Paseltiner
ce856a55f6
add separate errors for out-of-place associated consts and types
...
Previously, these would both be labeled as methods.
2015-07-19 15:32:24 -04:00
Manish Goregaokar
1da1a46d56
Rollup merge of #26898 - GuillaumeGomez:fixup, r=eddyb
...
r? @eddyb
First part of the improvement. I then intend to improve resolve_error as indicated by @eddyb. Do not merge for now (please !).
2015-07-16 14:13:25 +05:30
Guillaume Gomez
60133aa6dd
Remove macro, import function and enum
2015-07-14 19:53:09 +02:00
Guillaume Gomez
31262c206e
Arguments are now passed directly to the function instead of the enum variants
2015-07-14 16:32:43 +02:00
Guillaume Gomez
c5f7c19cf2
End of error code spanning centralization
2015-07-14 15:37:52 +02:00
Guillaume Gomez
f52a87c44e
Centralize error spaning and add an enum to make this treatment easier
2015-07-13 19:32:45 +02:00
Guillaume Gomez
cbf0b1b399
Remove warnings by centralizing error codes usage
2015-07-13 02:05:02 +02:00
Guillaume Gomez
48ee57e656
Update error codes
2015-07-13 00:57:16 +02:00
Guillaume Gomez
f1b231dd71
Remove unused method
2015-07-13 00:45:50 +02:00
Guillaume Gomez
8b731a5cac
Add error codes
2015-07-13 00:31:09 +02:00
Simonas Kazlauskas
7a90865db5
Implement RFC 1058
2015-07-12 00:47:56 +03:00
Guillaume Gomez
2e00b31770
We just have to replace error codes but code is good now
2015-07-11 21:46:06 +02:00
Guillaume Gomez
c3fd0e1229
Remove token::get_name when unneeded
2015-07-10 00:00:08 +02:00
Seo Sanghyeon
8d9f1bab75
Remove a FIXME
2015-07-08 23:30:19 +09:00
Eduard Burtescu
84b49b2d35
rustc_resolve: don't require redundant arguments to resolve_crate.
2015-06-19 01:18:42 +03:00