-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Rollup of 15 pull requests #78279
Rollup of 15 pull requests #78279
Commits on Oct 7, 2020
-
Revert "Allow dynamic linking for iOS/tvOS targets."
This reverts commit 56e115a.
Configuration menu - View commit details
-
Copy full SHA for 16e10bf - Browse repository at this point
Copy the full SHA 16e10bfView commit details
Commits on Oct 21, 2020
-
Configuration menu - View commit details
-
Copy full SHA for a9470d0 - Browse repository at this point
Copy the full SHA a9470d0View commit details
Commits on Oct 22, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 40ab18d - Browse repository at this point
Copy the full SHA 40ab18dView commit details
Commits on Oct 23, 2020
-
Configuration menu - View commit details
-
Copy full SHA for 09135e4 - Browse repository at this point
Copy the full SHA 09135e4View commit details -
Configuration menu - View commit details
-
Copy full SHA for e1c524c - Browse repository at this point
Copy the full SHA e1c524cView commit details -
add
insert
andinsert_with
toOption
This removes a cause of `unwrap` and code complexity. This allows replacing ``` option_value = Some(build()); option_value.as_mut().unwrap() ``` with ``` option_value.insert(build()) ``` or ``` option_value.insert_with(build) ``` It's also useful in contexts not requiring the mutability of the reference. Here's a typical cache example: ``` let checked_cache = cache.as_ref().filter(|e| e.is_valid()); let content = match checked_cache { Some(e) => &e.content, None => { cache = Some(compute_cache_entry()); // unwrap is OK because we just filled the option &cache.as_ref().unwrap().content } }; ``` It can be changed into ``` let checked_cache = cache.as_ref().filter(|e| e.is_valid()); let content = match checked_cache { Some(e) => &e.content, None => &cache.insert_with(compute_cache_entry).content, }; ```
Configuration menu - View commit details
-
Copy full SHA for 9b90e17 - Browse repository at this point
Copy the full SHA 9b90e17View commit details -
`option.insert` covers both needs anyway, `insert_with` is redundant.
Configuration menu - View commit details
-
Copy full SHA for e8df2a4 - Browse repository at this point
Copy the full SHA e8df2a4View commit details -
more tests in option.insert, code cleaning in option
Code cleaning made according to suggestions in discussion on PR ##77392 impacts insert, get_or_insert and get_or_insert_with.
Configuration menu - View commit details
-
Copy full SHA for 60a96ca - Browse repository at this point
Copy the full SHA 60a96caView commit details -
Configuration menu - View commit details
-
Copy full SHA for cc8b77a - Browse repository at this point
Copy the full SHA cc8b77aView commit details -
Update library/core/src/option.rs
Co-authored-by: Mara Bos <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 3955779 - Browse repository at this point
Copy the full SHA 3955779View commit details -
Update library/core/src/option.rs
Co-authored-by: Ivan Tham <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 415a8e5 - Browse repository at this point
Copy the full SHA 415a8e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 216d0fe - Browse repository at this point
Copy the full SHA 216d0feView commit details -
Update description of Empty Enum for accuracy
An empty enum is similar to the never type `!`, rather than the unit type `()`.
Configuration menu - View commit details
-
Copy full SHA for efedcb2 - Browse repository at this point
Copy the full SHA efedcb2View commit details -
Rollup merge of #77392 - Canop:option_insert, r=m-ou-se
add `insert` to `Option` This removes a cause of `unwrap` and code complexity. This allows replacing ``` option_value = Some(build()); option_value.as_mut().unwrap() ``` with ``` option_value.insert(build()) ``` It's also useful in contexts not requiring the mutability of the reference. Here's a typical cache example: ``` let checked_cache = cache.as_ref().filter(|e| e.is_valid()); let content = match checked_cache { Some(e) => &e.content, None => { cache = Some(compute_cache_entry()); // unwrap is OK because we just filled the option &cache.as_ref().unwrap().content } }; ``` It can be changed into ``` let checked_cache = cache.as_ref().filter(|e| e.is_valid()); let content = match checked_cache { Some(e) => &e.content, None => &cache.insert(compute_cache_entry()).content, }; ``` *(edited: I removed `insert_with`)*
Configuration menu - View commit details
-
Copy full SHA for 4fac27a - Browse repository at this point
Copy the full SHA 4fac27aView commit details -
Rollup merge of #77716 - francesca64:revert-ios-dynamic-linking, r=jo…
…nas-schievink Revert "Allow dynamic linking for iOS/tvOS targets." This reverts PR #73516. On macOS I compile static libs for iOS, automated using [cargo-mobile](https://github.com/BrainiumLLC/cargo-mobile), which has worked smoothly for the past 2 years. However, upon updating to Rust 1.46.0, I was no longer able to use Rust on iOS. I've bisected this to the PR referenced above. For most projects tested, apps now immediately crash with a message like this: ``` dyld: Library not loaded: /Users/francesca/Projects/example/target/aarch64-apple-ios/debug/deps/libexample.dylib Referenced from: /private/var/containers/Bundle/Application/745912AF-A928-465C-B340-872BD1C9F368/example.app/example Reason: image not found dyld: launch, loading dependent libraries DYLD_LIBRARY_PATH=/usr/lib/system/introspection DYLD_INSERT_LIBRARIES=/Developer/usr/lib/libBacktraceRecording.dylib:/Developer/usr/lib/libMainThreadChecker.dylib:/Developer/Library/PrivateFrameworks/DTDDISupport.framework/libViewDebuggerSupport.dylib:/Developer/Library/PrivateFrameworks/GPUTools.framework/libglInterpose.dylib:/usr/lib/libMTLCapture.dylib ``` This can be reproduced by using cargo-mobile to generate a winit example project, and then attempting to run it on an iOS device (`cargo mobile init && cargo apple open`). In our projects that depend on DisplayLink, the build instead fails with a linker error: ``` = note: Undefined symbols for architecture arm64: "_CACurrentMediaTime", referenced from: display_link::ios::run_callback_ios10::hda81197ff46aedbd in libapp-4f0abc1d7684103f.rlib(app-4f0abc1d7684103f.40d4iro0yz1iy487.rcgu.o) display_link::ios::run_callback_pre_ios10::h91f085da19374320 in libapp-4f0abc1d7684103f.rlib(app-4f0abc1d7684103f.40d4iro0yz1iy487.rcgu.o) ld: symbol(s) not found for architecture arm64 ``` After reverting the change to enable dynamic linking on iOS, everything works the same as it did on Rust 1.45.2 for me. In the future, would it be possible for me to be pinged when iOS-related PRs are made? I work for a company that intends on using Rust on iOS in production, so I'd gladly provide testing. cc @aspenluxxxy
Configuration menu - View commit details
-
Copy full SHA for b0ab433 - Browse repository at this point
Copy the full SHA b0ab433View commit details -
Rollup merge of #78198 - tmiasko:assert, r=davidtwco
Simplify assert terminator only if condition evaluates to expected value
Configuration menu - View commit details
-
Copy full SHA for e6f7b6b - Browse repository at this point
Copy the full SHA e6f7b6bView commit details -
Rollup merge of #78249 - lcnr:ct-infer-origin, r=varkor
improve const infer error For type inference we probably have to be careful about subtyping and stuff but considering that subtyping shouldn't be relevant for constants I don't really see a reason why we may not want to reuse the const origin here. r? @varkor
Configuration menu - View commit details
-
Copy full SHA for 71f1f76 - Browse repository at this point
Copy the full SHA 71f1f76View commit details -
Rollup merge of #78264 - JohnTitor:macro-test, r=petrochenkov
Add regression test for issue-77475 Closes #77475
Configuration menu - View commit details
-
Copy full SHA for 8c5d914 - Browse repository at this point
Copy the full SHA 8c5d914View commit details -
Rollup merge of #78274 - Enet4:patch-1, r=jonas-schievink
Update description of Empty Enum for accuracy An empty enum is similar to the never type `!`, rather than the unit type `()`.
Configuration menu - View commit details
-
Copy full SHA for 84437b4 - Browse repository at this point
Copy the full SHA 84437b4View commit details