blob: 4b730e844990e42e073b56600cc4a9fa6125bfb2 [file] [edit]
#![feature(staged_api)]
// Trait-associated item declarations only. Items defined inside impl blocks are tested in
// `impls.rs` because they have different parent-item behavior.
//@ is "$.index[?(@.name=='StableTraitWithAssociatedItems')].stability.feature" '"stable_trait_with_associated_items"'
//@ is "$.index[?(@.name=='StableTraitWithAssociatedItems')].stability.level.stable.since" '"1.0.0"'
#[stable(feature = "stable_trait_with_associated_items", since = "1.0.0")]
pub trait StableTraitWithAssociatedItems {
// Stable trait-associated items need their own stability attributes in staged API crates.
//@ is "$.index[?(@.name=='StableAssocType')].stability.feature" '"stable_assoc_type_feature"'
//@ is "$.index[?(@.name=='StableAssocType')].stability.level.stable.since" '"1.1.0"'
//@ is "$.index[?(@.name=='StableAssocType')].attrs" []
#[stable(feature = "stable_assoc_type_feature", since = "1.1.0")]
type StableAssocType;
//@ is "$.index[?(@.name=='UNSTABLE_ASSOC_CONST_IN_STABLE_TRAIT')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UNSTABLE_ASSOC_CONST_IN_STABLE_TRAIT')].stability.feature" '"unstable_assoc_const_in_stable_trait"'
#[unstable(feature = "unstable_assoc_const_in_stable_trait", issue = "none")]
const UNSTABLE_ASSOC_CONST_IN_STABLE_TRAIT: usize = 0;
//@ is "$.index[?(@.name=='unstable_provided_method')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='unstable_provided_method')].stability.feature" '"unstable_provided_method_feature"'
#[unstable(feature = "unstable_provided_method_feature", issue = "none")]
fn unstable_provided_method(&self) {}
}
//@ is "$.index[?(@.name=='UnstableTraitWithUnannotatedAssociatedItems')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UnstableTraitWithUnannotatedAssociatedItems')].stability.feature" '"unstable_trait_with_unannotated_associated_items"'
#[unstable(feature = "unstable_trait_with_unannotated_associated_items", issue = "none")]
pub trait UnstableTraitWithUnannotatedAssociatedItems {
// Unannotated associated items in unstable traits inherit the trait's unstable stability.
//@ is "$.index[?(@.name=='UnannotatedAssocTypeInUnstableTrait')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UnannotatedAssocTypeInUnstableTrait')].stability.feature" '"unstable_trait_with_unannotated_associated_items"'
type UnannotatedAssocTypeInUnstableTrait;
//@ is "$.index[?(@.name=='UNANNOTATED_ASSOC_CONST_IN_UNSTABLE_TRAIT')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UNANNOTATED_ASSOC_CONST_IN_UNSTABLE_TRAIT')].stability.feature" '"unstable_trait_with_unannotated_associated_items"'
const UNANNOTATED_ASSOC_CONST_IN_UNSTABLE_TRAIT: usize;
//@ is "$.index[?(@.name=='unannotated_required_method_in_unstable_trait')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='unannotated_required_method_in_unstable_trait')].stability.feature" '"unstable_trait_with_unannotated_associated_items"'
fn unannotated_required_method_in_unstable_trait(&self);
}
//@ is "$.index[?(@.name=='UnstableTraitWithExplicitAssociatedItem')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UnstableTraitWithExplicitAssociatedItem')].stability.feature" '"unstable_trait_with_explicit_associated_item"'
#[unstable(feature = "unstable_trait_with_explicit_associated_item", issue = "none")]
pub trait UnstableTraitWithExplicitAssociatedItem {
// It's possble to override the parent's instability with another `#[unstable]` attribute,
// for example to specify a different feature gate for that item.
//@ is "$.index[?(@.name=='UnstableAssocTypeInUnstableTrait')].stability.level" '"unstable"'
//@ is "$.index[?(@.name=='UnstableAssocTypeInUnstableTrait')].stability.feature" '"unstable_assoc_type_in_unstable_trait"'
#[unstable(feature = "unstable_assoc_type_in_unstable_trait", issue = "none")]
type UnstableAssocTypeInUnstableTrait;
}