Arthur Milchior
44428ea589
Two lifetime clarification ( #350 )
3 years ago
Arthur Milchior
946038b2f9
"UB" vs "Undefined Behavior" ( #349 )
3 years ago
Marijn Schouten
c7d8467ca9
Change "writers" to "readers" for Deref. ( #346 )
3 years ago
Aria Beingessner
11f1165e8a
Make the Vec impl be slightly more careful with ZSTs and alignment.
...
This also incidentally makes the ZST code and final code have the same formatting for the divide.
3 years ago
Kirin
e64ea939f0
implement `IntoIterator` for `Vec` ( #337 )
3 years ago
Ramnivas Laddad
7ea147e4f6
Add an explanation shared to exclusive transmute ( #344 )
3 years ago
Qingyou Meng
f6d6126fc9
ffi: explicitly declare hello_from_rust for C99 ( #343 )
3 years ago
Marcelo Diop-Gonzalez
90993eeac9
Fix a small typo in exception-safety.md ( #341 )
3 years ago
Kirin
78da21c40b
Make `Vec::new` public in vec-alloc.md ( #336 )
3 years ago
Kirin
32733960df
Fix a syntax error in leaking.md
3 years ago
Kevin Ji
62d1967825
send-and-sync: it's -> its
3 years ago
fmease
f4d1b4200d
Clarify the HRTB chapter ( #330 )
3 years ago
Nicolas Abram
ca00ee8314
Clarify repr(transparent) in other-reprs ( #329 )
...
Co-authored-by: Yuki Okushi <yuki.okushi@huawei.com>
3 years ago
Alan Wu
0e5a200124
Make C code more recognizably C ( #331 )
3 years ago
khollbach
66d097d3d8
Fix typo / type error in FFI code example ( #327 )
3 years ago
Alyssa Haroldsen
c05c452b36
Update the guidance on uninitialized data with ptr::addr_of_mut ( #325 )
3 years ago
Paul C
49681ea4a9
Clarify that drop flag fields only apply to older Rust versions ( #324 )
...
Co-authored-by: Yuki Okushi <jtitor@2k36.org>
3 years ago
chubei
c6b4bf831e
Replace some use of variant with covariant ( #322 )
3 years ago
Eric Huss
358e6a61d5
Merge pull request #296 from JohnTitor/call-rust-code-from-c
...
Write a basic "call Rust from C" example
3 years ago
Eric Huss
6c2aeef84b
Merge pull request #294 from JohnTitor/clarify-safe-vs-unsafe-relation
...
Clarify the Safe vs. Unsafe Rust relationship
3 years ago
syoh0708
b6808de76b
Fix typo with respect to dangling pointer ( #319 )
3 years ago
Victor Costan
2d66852a27
Fix typo/minor grammar error in subtyping.md ( #317 )
3 years ago
Pure White
650d2454d7
doc: clarify `thread::scoped::JoinGuard` chapter ( #313 )
3 years ago
Josh Triplett
7cf00d4381
Clarify niche optimization on enums with reprs ( #315 )
3 years ago
Andrew Meredith
e0aa678dee
Update rc decrement snipped ( #316 )
3 years ago
Waffle Maybe
191c06c79c
Remove useless `unsafe`, `mut` and ptr casts in example in `send-and-sync.md` ( #308 )
3 years ago
Noah Lev
2747c4bb2c
Clarify a bit of wording ( #310 )
3 years ago
Yuki Okushi
88b2dbcce6
Apply review comments
3 years ago
Yuki Okushi
543c9b1bd7
Show the output
3 years ago
Yuki Okushi
044051c0ed
Move the section higher
3 years ago
Yuki Okushi
64553aa569
Write a basic "call Rust from C" example
3 years ago
Gus Wynn
fe6227eb3c
update lifetime-elision to show what elided code under `rust_2018_idi… ( #306 )
...
This was a bit confusing for me to read, as it was using an old style of rust that I am not used to
Unfortunately, this lint group isn't on by default, but I think `elided_lifetimes_in_paths` may be on track to be deny-by-default in edition 2021?
3 years ago
zachmatson
8da31d7a28
Change code for `into_iter` on the `RawVec` section for consistency/soundness ( #302 )
3 years ago
Devin Jeanpierre
3abf036ebf
Document lifetime elision for fn types, Fn*, impl
...
Currently, the lifetime elision doc only documents function definitions, but lifetime elision is also allowed in the following other locations:
* `fn` types, such as `fn(&T)`
* `Fn`/`FnMut`/`FnOnce`, such as `Fn(&T)`
* `impl` headers
To demo this up, I made some type aliases for `fn`/`Fn` which you can pass `&T` as a parameter to (to follow the lifetime rules of the surrounding context), and compared what you get with that instead of using `fn`/`Fn` directly, where lifetime elision takes on the rules from `fn`/`Fn`/etc.
I also demoed up an `impl` header that used lifetime elision twice, although the error message in that case is broken (filed https://github.com/rust-lang/rust/issues/87763 )
The demo was half for this change description, and half just to make sure I understand Rust -- in particular, I really had to reverse engineer it for `impl` because I wasn't sure, and it didn't seem to be documented anywhere (at least not here!)
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=f82b280de4b992f225bc32121f333e96
3 years ago
Yuki Okushi
3e8f80c6cc
Note that this book is edition 2018
3 years ago
Yuki Okushi
c42314b09b
Remove unnecessary `extern crate`s
3 years ago
Yuki Okushi
e43b81128f
Clarify the Safe vs. Unsafe Rust relationship
3 years ago
Thirds
f51734eb55
Add cloning example for dot operator behaviour ( #292 )
...
Co-authored-by: Yuki Okushi <yuki.okushi@huawei.com>
3 years ago
Yuki Okushi
7a13537f96
Apply review comments
3 years ago
Yuki Okushi
b0ec7251db
Fix some style issues
3 years ago
Yuki Okushi
c162bb71e9
Move the list of coercions to the reference
3 years ago
Yuki Okushi
ff25fa253d
Add an example that shows the null-pointer opt does not happen
3 years ago
Eric Huss
ca4aa393d7
Merge pull request #287 from JohnTitor/casting
...
Remove casting list from the nomicon
3 years ago
Yuki Okushi
5e789618d9
Audit `ignore` annotations
3 years ago
Yuki Okushi
b12f36805c
Re-organize casting section
3 years ago
Yuki Okushi
f2e228e8eb
Remove casting list from the nomicon
3 years ago
Evan Lu
5de61f9784
rename typo "lifetime" to "reference" ( #286 )
...
Co-authored-by: evan l00 <evan_l00@qq.com>
3 years ago
Yuki Okushi
3bdccf4402
Add an incomplete warning to the top page ( #274 )
3 years ago
Jason Heeris
b9ca313e68
The #[repr(C)] attribute on the callback example is not necessary, since the type is not used in C.
3 years ago
Yuki Okushi
edd83c5d7e
Fix linkcheck failures
3 years ago