I am not sure if part of this line of code is redundant

I am confused about this line: a union can never have a ctor def (according to this). So what is the purpose of the ItemKind::Union match? It is there just for completeness (means cover all cases)? Many thanks!

It was introduced in https://github.com/rust-lang/rust/commit/4fe94e0be65865bef1d0283873158baa523afddc. It seems that @jseyfried was adding an ItemKind::Union everywhere an ItemKind::Struct could was used.