diff options
| author | Gianni Ciccarelli <gianni.ciccarelli@gmail.com> | 2017-04-26 03:17:48 +0000 |
|---|---|---|
| committer | Gianni Ciccarelli <gianni.ciccarelli@gmail.com> | 2017-04-26 14:43:09 +0000 |
| commit | b48eb5e0be2a6e06d9629f770288c46f7bcb326c (patch) | |
| tree | 788c9f27af9f780a3765dbdd80e9981274698265 /src/librustc/traits | |
| parent | 715811d0be05dcdc55b44f97d9fd2cd1eb7eee05 (diff) | |
| download | rust-b48eb5e0be2a6e06d9629f770288c46f7bcb326c.tar.gz rust-b48eb5e0be2a6e06d9629f770288c46f7bcb326c.zip | |
support `default impl` for specialization
`[default] [unsafe] impl` and typecheck
Diffstat (limited to 'src/librustc/traits')
| -rw-r--r-- | src/librustc/traits/util.rs | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/librustc/traits/util.rs b/src/librustc/traits/util.rs index 4aa7950de8f..e7c61dde768 100644 --- a/src/librustc/traits/util.rs +++ b/src/librustc/traits/util.rs @@ -14,6 +14,7 @@ use ty::{self, Ty, TyCtxt, ToPredicate, ToPolyTraitRef}; use ty::outlives::Component; use util::nodemap::FxHashSet; use hir::{self}; +use traits::specialize::specialization_graph::NodeItem; use super::{Obligation, ObligationCause, PredicateObligation, SelectionContext, Normalized}; @@ -525,6 +526,10 @@ impl<'a, 'gcx, 'tcx> TyCtxt<'a, 'gcx, 'tcx> { } } } + + pub fn impl_item_is_final(self, node_item: &NodeItem<hir::Defaultness>) -> bool { + node_item.item.is_final() && !self.impl_is_default(node_item.node.def_id()) + } } pub enum TupleArgumentsFlag { Yes, No } |
