AST Visitor now walks enum discriminant expression
Mark live codes in struct/enum for dead-code pass
auto merge of #10994 : ktt3ja/rust/issue-10956, r=alexcrichton

Types used inside live struct or enum are now marked live.

Fix #10956 and #10993.