Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
I don't think we need to cover shadowing. I wouldn't say it's an advanced concept, but I think it's somewhat niche. It's a useful thing to know about the language, but it's also used fairly infrequently (in my experience). I think it just takes too long to explain for how rarely it is used, since I also have to explain why it's useful (students tend to assume this is an anti-pattern). I don't think we lose much by dropping this, and I think the time we gain back is more valuable.
The shadowing slide was technically the first place we talk about scoping in Rust, so I've moved that to the previous slide on blocks. I think it fits there a bit more naturally. We do briefly cover the topic in the slide on ownership, but I think it's also good to mention it earlier.