extra: Add a testcase for #7256.
librustc: Don't allow enum struct variants to shadow structs.
Add test for duplicate definitions of structs and enum struct variants.
auto merge of #7258 : huonw/rust/7256, r=bstrie
auto merge of #7267 : luqmana/rust/issue-5792, r=cmr

Fixes #5792
Add rules for assert, fail, and deriving to vim syntax file. Also highlight the mod path in "use module;" properly.
Fix error messages in test cases, since fns/traits now pretty-print with a bounds list
Parse and typecheck (not kindcheck) bounds on trait paths.
Add tests for not-kind-checked trait bounds.
Check closure freevar kinds against destination environment bounds (#3569)
Add basic test cases for closure bounds. (#3569)
Allow ~fn:Copy() to be copied.
Check existential type contents against destination trait bounds.
Fix pretty-printing builtin bounds on closures and traits