-
Notifications
You must be signed in to change notification settings - Fork 490
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
modify confusing variance example #1224
Conversation
This was added in #874 where Niko reviewed it as being correct. @nikomatsakis Do you perhaps have any comments on this case? |
Extended that section to talk about |
Seems right. To be 100% pedantic, you would talk about the "variance of a (struct/enum/union) type Given that |
Merging per Niko's approval. |
Update books ## reference 6 commits in 683bfe5cd64d589c6a1645312ab5f93b6385ccbb..9fce337a55ee4a4629205f6094656195cecad231 2022-05-27 11:54:20 -0700 to 2022-06-22 13:59:28 -0700 - Remove outdated restriction on recursive types (rust-lang/reference#1231) - Clarify "string continue" for (byte) string literals (rust-lang/reference#1042) - Add a note to the turbofish section about impl Trait (rust-lang/reference#1212) - modify confusing variance example (rust-lang/reference#1224) - Add stable references of `macro_metavar_expr` (rust-lang/reference#1192) - Document native library modifier `bundle` (rust-lang/reference#1210) ## book 33 commits in 396fdb69de7fb18f24b15c7ad13491b1c1fa7231..efbafdba3618487fbc9305318fcab9775132ac15 2022-06-08 10:02:35 -0400 to 2022-06-19 21:06:50 -0400 - Propagate tech review edits to appendices to src - Tech review comments and further edits to the appendices - Duplicate fragment "mutation and borrowing" - Propagate ch20 tech review edits to src - Edits in response to tech review of chapter 20 - Comments from tech review on chapter 20 - Propagate ch7 tech review edits to src - Responding to tech review of ch7 - Tech review comments on ch7 - Propagate ch19 tech review edits to src - Responses to tech review of ch19 - Tech review comments on ch 19 - Update ch03-01-variables-and-mutability.md - Add more explanation to CONTRIBUTING about the nostarch directory - Duplicate sentence - Missing period - Regenerate ch09-02 error messages - Change some print formatting styles in ch18 - Propagate tech review ch18 edits to src - Responses to tech review comments of chapter 18 - Chapter 18 from tech review - Snapshot of introduction for nostarch - Propagate edits of ch1 to src - Edits to edits to chapter 1 - Edits from nostarch for chapter 1 - Update Visual Studio instructions for 2022 - bugfix/typo-ch10-01 Fix typo in chapter ch10-01 - Tweak rustfmt slightly for these listings - Propagate edits to ch13 to src - Responses to nostarch edits to ch13 - Edits to ch13 from nostarch - Apply complex Clippy recommendation - Apply Clippy recommendations: `cargo clippy --fix` ## rust-by-example 4 commits in dbb7e5e2345ee26199ffba218156b6009016a20c..1095df2a5850f2d345fad43a30633133365875ba 2022-06-02 16:30:51 -0300 to 2022-06-18 21:47:12 -0300 - Add example for `array.get()` (rust-lang/rust-by-example#1554) - Example improvements (rust-lang/rust-by-example#1552) - Fix for a set of typos (rust-lang/rust-by-example#1551) - Make guard examples clearer around `_` (rust-lang/rust-by-example#1550) ## rustc-dev-guide 11 commits in 6e4d6435db89bcc027b1bba9742e4f59666f5412..048d925f0a955aac601c4160c0e7f05771bcf63b 2022-06-08 08:06:32 +0900 to 2022-06-21 22:25:34 +0900 - not obvious what Ex is, so rather get rid (rust-lang/rustc-dev-guide#1372) - small improves (rust-lang/rustc-dev-guide#1371) - make clear that other versions can work (rust-lang/rustc-dev-guide#1373) - Fix small `src/diagnostics.md` typo (rust-lang/rustc-dev-guide#1370) - Add an "is" and rearange "We next" to "Next, we" (rust-lang/rustc-dev-guide#1369) - diagnostics: add translation documentation - diagnostics: line wrapping/heading changes - later -> latter - Remove mention of -Zborrowck=mir with Polonius. (rust-lang/rustc-dev-guide#1367) - Remove nll compare mode. (rust-lang/rustc-dev-guide#1366) - add section on user types (rust-lang/rustc-dev-guide#1359) ## embedded-book 1 commits in cbb494f96da3268c2925bdadc65ca83d42f2d4ef..e17dcef5e96346ee3d7fa56820ddc7e5c39636bc 2022-05-26 06:58:43 +0000 to 2022-06-19 10:28:00 +0000 - Fix a typo (rust-embedded/book#319)
Update books ## reference 6 commits in 683bfe5cd64d589c6a1645312ab5f93b6385ccbb..9fce337a55ee4a4629205f6094656195cecad231 2022-05-27 11:54:20 -0700 to 2022-06-22 13:59:28 -0700 - Remove outdated restriction on recursive types (rust-lang/reference#1231) - Clarify "string continue" for (byte) string literals (rust-lang/reference#1042) - Add a note to the turbofish section about impl Trait (rust-lang/reference#1212) - modify confusing variance example (rust-lang/reference#1224) - Add stable references of `macro_metavar_expr` (rust-lang/reference#1192) - Document native library modifier `bundle` (rust-lang/reference#1210) ## book 33 commits in 396fdb69de7fb18f24b15c7ad13491b1c1fa7231..efbafdba3618487fbc9305318fcab9775132ac15 2022-06-08 10:02:35 -0400 to 2022-06-19 21:06:50 -0400 - Propagate tech review edits to appendices to src - Tech review comments and further edits to the appendices - Duplicate fragment "mutation and borrowing" - Propagate ch20 tech review edits to src - Edits in response to tech review of chapter 20 - Comments from tech review on chapter 20 - Propagate ch7 tech review edits to src - Responding to tech review of ch7 - Tech review comments on ch7 - Propagate ch19 tech review edits to src - Responses to tech review of ch19 - Tech review comments on ch 19 - Update ch03-01-variables-and-mutability.md - Add more explanation to CONTRIBUTING about the nostarch directory - Duplicate sentence - Missing period - Regenerate ch09-02 error messages - Change some print formatting styles in ch18 - Propagate tech review ch18 edits to src - Responses to tech review comments of chapter 18 - Chapter 18 from tech review - Snapshot of introduction for nostarch - Propagate edits of ch1 to src - Edits to edits to chapter 1 - Edits from nostarch for chapter 1 - Update Visual Studio instructions for 2022 - bugfix/typo-ch10-01 Fix typo in chapter ch10-01 - Tweak rustfmt slightly for these listings - Propagate edits to ch13 to src - Responses to nostarch edits to ch13 - Edits to ch13 from nostarch - Apply complex Clippy recommendation - Apply Clippy recommendations: `cargo clippy --fix` ## rust-by-example 4 commits in dbb7e5e2345ee26199ffba218156b6009016a20c..1095df2a5850f2d345fad43a30633133365875ba 2022-06-02 16:30:51 -0300 to 2022-06-18 21:47:12 -0300 - Add example for `array.get()` (rust-lang/rust-by-example#1554) - Example improvements (rust-lang/rust-by-example#1552) - Fix for a set of typos (rust-lang/rust-by-example#1551) - Make guard examples clearer around `_` (rust-lang/rust-by-example#1550) ## rustc-dev-guide 11 commits in 6e4d6435db89bcc027b1bba9742e4f59666f5412..048d925f0a955aac601c4160c0e7f05771bcf63b 2022-06-08 08:06:32 +0900 to 2022-06-21 22:25:34 +0900 - not obvious what Ex is, so rather get rid (rust-lang/rustc-dev-guide#1372) - small improves (rust-lang/rustc-dev-guide#1371) - make clear that other versions can work (rust-lang/rustc-dev-guide#1373) - Fix small `src/diagnostics.md` typo (rust-lang/rustc-dev-guide#1370) - Add an "is" and rearange "We next" to "Next, we" (rust-lang/rustc-dev-guide#1369) - diagnostics: add translation documentation - diagnostics: line wrapping/heading changes - later -> latter - Remove mention of -Zborrowck=mir with Polonius. (rust-lang/rustc-dev-guide#1367) - Remove nll compare mode. (rust-lang/rustc-dev-guide#1366) - add section on user types (rust-lang/rustc-dev-guide#1359) ## embedded-book 1 commits in cbb494f96da3268c2925bdadc65ca83d42f2d4ef..e17dcef5e96346ee3d7fa56820ddc7e5c39636bc 2022-05-26 06:58:43 +0000 to 2022-06-19 10:28:00 +0000 - Fix a typo (rust-embedded/book#319)
Update books ## reference 6 commits in 683bfe5cd64d589c6a1645312ab5f93b6385ccbb..9fce337a55ee4a4629205f6094656195cecad231 2022-05-27 11:54:20 -0700 to 2022-06-22 13:59:28 -0700 - Remove outdated restriction on recursive types (rust-lang/reference#1231) - Clarify "string continue" for (byte) string literals (rust-lang/reference#1042) - Add a note to the turbofish section about impl Trait (rust-lang/reference#1212) - modify confusing variance example (rust-lang/reference#1224) - Add stable references of `macro_metavar_expr` (rust-lang/reference#1192) - Document native library modifier `bundle` (rust-lang/reference#1210) ## book 33 commits in 396fdb69de7fb18f24b15c7ad13491b1c1fa7231..efbafdba3618487fbc9305318fcab9775132ac15 2022-06-08 10:02:35 -0400 to 2022-06-19 21:06:50 -0400 - Propagate tech review edits to appendices to src - Tech review comments and further edits to the appendices - Duplicate fragment "mutation and borrowing" - Propagate ch20 tech review edits to src - Edits in response to tech review of chapter 20 - Comments from tech review on chapter 20 - Propagate ch7 tech review edits to src - Responding to tech review of ch7 - Tech review comments on ch7 - Propagate ch19 tech review edits to src - Responses to tech review of ch19 - Tech review comments on ch 19 - Update ch03-01-variables-and-mutability.md - Add more explanation to CONTRIBUTING about the nostarch directory - Duplicate sentence - Missing period - Regenerate ch09-02 error messages - Change some print formatting styles in ch18 - Propagate tech review ch18 edits to src - Responses to tech review comments of chapter 18 - Chapter 18 from tech review - Snapshot of introduction for nostarch - Propagate edits of ch1 to src - Edits to edits to chapter 1 - Edits from nostarch for chapter 1 - Update Visual Studio instructions for 2022 - bugfix/typo-ch10-01 Fix typo in chapter ch10-01 - Tweak rustfmt slightly for these listings - Propagate edits to ch13 to src - Responses to nostarch edits to ch13 - Edits to ch13 from nostarch - Apply complex Clippy recommendation - Apply Clippy recommendations: `cargo clippy --fix` ## rust-by-example 4 commits in dbb7e5e2345ee26199ffba218156b6009016a20c..1095df2a5850f2d345fad43a30633133365875ba 2022-06-02 16:30:51 -0300 to 2022-06-18 21:47:12 -0300 - Add example for `array.get()` (rust-lang/rust-by-example#1554) - Example improvements (rust-lang/rust-by-example#1552) - Fix for a set of typos (rust-lang/rust-by-example#1551) - Make guard examples clearer around `_` (rust-lang/rust-by-example#1550) ## rustc-dev-guide 11 commits in 6e4d6435db89bcc027b1bba9742e4f59666f5412..048d925f0a955aac601c4160c0e7f05771bcf63b 2022-06-08 08:06:32 +0900 to 2022-06-21 22:25:34 +0900 - not obvious what Ex is, so rather get rid (rust-lang/rustc-dev-guide#1372) - small improves (rust-lang/rustc-dev-guide#1371) - make clear that other versions can work (rust-lang/rustc-dev-guide#1373) - Fix small `src/diagnostics.md` typo (rust-lang/rustc-dev-guide#1370) - Add an "is" and rearange "We next" to "Next, we" (rust-lang/rustc-dev-guide#1369) - diagnostics: add translation documentation - diagnostics: line wrapping/heading changes - later -> latter - Remove mention of -Zborrowck=mir with Polonius. (rust-lang/rustc-dev-guide#1367) - Remove nll compare mode. (rust-lang/rustc-dev-guide#1366) - add section on user types (rust-lang/rustc-dev-guide#1359) ## embedded-book 1 commits in cbb494f96da3268c2925bdadc65ca83d42f2d4ef..e17dcef5e96346ee3d7fa56820ddc7e5c39636bc 2022-05-26 06:58:43 +0000 to 2022-06-19 10:28:00 +0000 - Fix a typo (rust-embedded/book#319)
Given
fn(T) -> T
the typeT
is only invariant while wrapped inside of an item. If you havefn(T) -> T
directly you can freely "shrink" theT
in return position or "grow" theT
in argument position. E.g.