use rustc::arena::Arena;
use rustc::bug;
-use rustc_error_codes::*;
use rustc_errors::struct_span_err;
use rustc_hir as hir;
use rustc_hir::def::{DefKind, Res};
if let Some(hir_id) = item_hir_id {
self.lctx.with_parent_item_lifetime_defs(hir_id, |this| {
let this = &mut ItemLowerer { lctx: this };
- if let ItemKind::Impl { ref of_trait, .. } = item.kind {
- if of_trait.as_ref().map(|tr| tr.constness.is_some()).unwrap_or(false) {
- this.with_trait_impl_ref(of_trait, |this| visit::walk_item(this, item));
+ if let ItemKind::Impl { constness, ref of_trait, .. } = item.kind {
+ if constness == Constness::Const {
this.lctx
.diagnostic()
.span_err(item.span, "const trait impls are not yet implemented");
unsafety,
polarity,
defaultness,
+ constness,
generics: ref ast_generics,
of_trait: ref trait_ref,
self_ty: ref ty,
unsafety,
polarity,
defaultness: self.lower_defaultness(defaultness, true /* [1] */),
+ constness,
generics,
of_trait: trait_ref,
self_ty: lowered_ty,