Commit Graph

220 Commits

Author SHA1 Message Date
Vadim Petrochenkov
a9ecfd7295 Hygienize use of built-in macros in the standard library 2019-08-15 22:58:50 +03:00
Mark Rousskov
2601c86487 Handle cfg(bootstrap) throughout 2019-08-14 05:39:53 -04:00
Vadim Petrochenkov
cbcc7dd182 Give built-in macros stable addresses in the standard library 2019-08-10 00:05:37 +03:00
Mazdak Farrokhzad
714c8ea9b5
Rollup merge of #63114 - matthewjasper:hygienic-format-args, r=petrochenkov
Remove gensym in format_args

This also fixes some things to allow us to export opaque macros from libcore:

* Don't consider items that are only reachable through opaque macros as public/exported (so they aren't linted as needing docs)
* Mark private items reachable from the root of libcore as unstable - they are now reachable (in principle) in other crates via macros in libcore

r? @petrochenkov
2019-08-09 14:07:29 +02:00
Lzu Tao
90fa7901b9 Postpone deprecating try! until 1.39.0 2019-08-09 02:29:44 +00:00
BO41
fd7ac6b17e Deprecate try! macro
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
Co-Authored-By: Oliver Middleton <olliemail27@gmail.com>
2019-08-09 02:29:44 +00:00
SOFe
403292db35
Improved documentation for compile_error!()
Fixes #63375
2019-08-08 18:05:10 +08:00
Matthew Jasper
d9d9246418 Remove gensym from format_args 2019-08-05 23:50:47 +01:00
Mazdak Farrokhzad
6b951c2950
Rollup merge of #62663 - llogiq:more-questionmark-docs, r=GuillaumeGomez
More questionmarks in doctests

This removes the other `unwrap`s in the macro doctests, replacing them with `?`. For now, we need to specify the main function including the return type, we can get rid of that once the return type suggestion for `fn main() { .. }` works correctly.

r? @QuietMisdreavus
2019-08-02 12:14:14 +02:00
Andre Bogus
cbac7815fe More questionmarks in doctests 2019-08-01 17:27:57 +02:00
Vadim Petrochenkov
73dae4eaf9 Remove derives Encodable/Decodable and unstabilize attribute #[bench] 2019-07-31 21:27:59 +03:00
Vadim Petrochenkov
8eaf17bca2 Introduce built-in macros through libcore 2019-07-26 13:09:54 +03:00
Vadim Petrochenkov
433024147a syntax_ext: Turn #[global_allocator] into a regular attribute macro 2019-07-24 12:29:44 +03:00
Ralf Jung
4b47e78a16 use a const to hack around promotion limitations 2019-07-21 12:28:18 +02:00
Ralf Jung
e074db764a use const array repeat expressions for uninit_array 2019-07-19 14:47:56 +02:00
Vadim Petrochenkov
f1d4ebf015 Remove unnecessary expansions created by #[test_case/test/bench]
The expansions were created to allow unstable things inside `#[test_case/test/bench]`, but that's not a proper way to do that.
Put the required `allow_internal_unstable`s into the macros' properties instead.
2019-07-11 00:12:07 +03:00
Aleksey Kladov
b052fbb54b
Apply suggestions from code review
Co-Authored-By: Mazdak Farrokhzad <twingoow@gmail.com>
2019-07-09 19:10:22 +03:00
Aleksey Kladov
8175a1f905 clarify that debug_assert does not completely omits the code
TIL that debug_assert is implemented using `if cfg!(debug_assertions)`
rather than `#[cfg(debug_assertions)]`. This means one can not use API
gated with `#[cfg(debug_assertions)]` in `debug_assert` family of
macros.
2019-07-09 15:26:18 +03:00
Mazdak Farrokhzad
719eeb260b
Rollup merge of #61990 - llogiq:questionmark-test, r=QuietMisdreavus
First question mark in doctest

We have had `?` for `Result`s in doctests for some time, but so far haven't used them in doctests. With this PR, I want to start the de-`unwrap`ping of doctests – and the discussion on where to do so.

There is one downside, which is that the code can no longer be copied into a plain `main()` method, on the other hand, there should be a workable error if one does this.
2019-07-07 05:11:51 +02:00
Vadim Petrochenkov
ab112cab03 Improve documentation for built-in macros 2019-07-06 16:59:08 +03:00
Vadim Petrochenkov
15042a3c1c #[rustc_doc_only_macro] -> #[rustc_builtin_macro] 2019-07-06 16:59:08 +03:00
Andre Bogus
ee05fc8104 First question mark in doctest 2019-07-03 17:54:58 +02:00
Julien Cretin
b8106b59d2 Fix meta-variable binding errors in macros
The errors are either:
- The meta-variable used in the right-hand side is not bound (or defined) in the
  left-hand side.
- The meta-variable used in the right-hand side does not repeat with the same
  kleene operator as its binder in the left-hand side. Either it does not repeat
  enough, or it uses a different operator somewhere.

This change should have no semantic impact.
2019-06-23 01:30:41 +02:00
Vadim Petrochenkov
eb09daa762 Hygienize macros in the standard library 2019-06-12 20:27:29 +03:00
Brent Kerby
27c75372f1 Remove phrase "instead of a panic!" 2019-05-23 17:34:10 -06:00
Brent Kerby
941ca6f3e2 Clarify docs for unreachable! macro 2019-05-23 09:04:01 -06:00
Mazdak Farrokhzad
2ee038af8c
Rollup merge of #59448 - benesch:macro-doc, r=Centril
Use consistent phrasing for all macro summaries

None
2019-03-28 08:43:39 +01:00
Nikhil Benesch
d339b89644
Use consistent phrasing for all macro summaries 2019-03-26 18:22:25 -04:00
Ralf Jung
0e0383abc6 adjust MaybeUninit API to discussions
uninitialized -> uninit
into_initialized -> assume_init
read_initialized -> read
set -> write
2019-03-26 09:21:32 +01:00
Aleksey Kladov
9d408d972f Add todo!() macro
The use-case of `todo!()` macro is to be a much easier to type
alternative to `unimplemented!()` macro.
2019-03-18 19:27:31 +03:00
Mark Rousskov
2870015b7b Bootstrap compiler update for 1.35 release 2019-03-02 09:05:34 -07:00
Ralf Jung
95ef9b4fc2 make Centril happy 2019-02-14 22:31:06 +01:00
Ralf Jung
b5ab2c7f1c split MaybeUninit into several features, expand docs a bit 2019-02-14 20:07:57 +01:00
Mazdak Farrokhzad
0ed894afae
Rollup merge of #57815 - dotdash:asserts, r=sfackler
Speed up the fast path for assert_eq! and assert_ne!

Currently, the panic!() calls directly borrow the value bindings. This
causes those bindings to always be initialized, i.e. they're initialized
even before the values are even compared. This causes noticeable
overhead in what should be a really cheap operation.

By performing a reborrow of the value in the call to panic!(), we allow
LLVM to optimize that code, so that the extra borrow only happens in the
error case.

We could achieve the same result by dereferencing the values passed to
panic!(), as the format machinery borrows them anyway, but this causes
assertions to fail to compile if one of the values is unsized, i.e. it
would be a breaking change.
2019-02-13 04:36:56 +01:00
bors
b244f61b77 Auto merge of #58341 - alexreg:cosmetic-2-doc-comments, r=steveklabnik
Cosmetic improvements to doc comments

This has been factored out from https://github.com/rust-lang/rust/pull/58036 to only include changes to documentation comments (throughout the rustc codebase).

r? @steveklabnik

Once you're happy with this, maybe we could get it through with r=1, so it doesn't constantly get invalidated? (I'm not sure this will be an issue, but just in case...) Anyway, thanks for your advice so far!
2019-02-12 19:09:24 +00:00
Oliver Scherer
d3c212c552 Require a list of features to allow in allow_internal_unstable 2019-02-11 15:08:16 +01:00
Alexander Regueiro
99ed06eb88 libs: doc comments 2019-02-10 23:57:25 +00:00
Alexander Regueiro
b87363e763 tests: doc comments 2019-02-10 23:42:32 +00:00
Ralf Jung
9a460aac37 some type-level docs for MaybeUninit; rename into_inner -> into_initialized 2019-02-03 22:10:39 +01:00
Ralf Jung
22a947f3aa add macro for creating uninitialized array 2019-01-28 10:48:38 +01:00
Björn Steinbrink
5a7cd848f7 Speed up the fast path for assert_eq! and assert_ne!
Currently, the panic!() calls directly borrow the value bindings. This
causes those bindings to always be initialized, i.e. they're initialized
even before the values are even compared. This causes noticeable
overhead in what should be a really cheap operation.

By performing a reborrow of the value in the call to panic!(), we allow
LLVM to optimize that code, so that the extra borrow only happens in the
error case.

We could achieve the same result by dereferencing the values passed to
panic!(), as the format machinery borrows them anyway, but this causes
assertions to fail to compile if one of the values is unsized, i.e. it
would be a breaking change.
2019-01-21 19:36:27 +01:00
Mark Rousskov
2a663555dd Remove licenses 2018-12-25 21:08:33 -07:00
Mark Mansi
0b40be696e link to raw identifiers 2018-12-03 13:05:04 -06:00
Mark Mansi
9c8802dc01 Explain raw identifer syntax 2018-12-03 13:05:04 -06:00
Mark Mansi
e7e96921c2 remove some uses of try! 2018-12-01 15:48:55 -06:00
Daniel Alley
38d2f9b470 Fix docstring spelling mistakes 2018-11-09 23:14:46 -05:00
Siva Prasad
9d440d578d Spacing changes made to the example 2018-09-05 09:09:50 -04:00
MagnumOpus21
5e7039411b Added a missing backtick to no std 2018-09-05 08:56:00 -04:00
MagnumOpus21
94e8a6aa3b Made the requested changes for Note: and no_std within backticks 2018-09-05 08:56:00 -04:00
MagnumOpus21
6c66aeb6c0 Prefixed no_run to the no_std write macro 2018-09-05 08:56:00 -04:00