fn check_target_features(&mut self, func_did: DefId) {
        let callee_features = &self.tcx.codegen_fn_attrs(func_did).target_features;
        let self_features = &self.tcx.codegen_fn_attrs(self.body_did).target_features;

        // Is `callee_features` a subset of `calling_features`?
        if !callee_features
            .iter()
            .all(|feature| self_features.contains(feature))
        {
            self.require_unsafe(
                UnsafetyViolationKind::General,
                UnsafetyViolationDetails::CallToFunctionWith,
            )
        }
    }
/// Checks whether calling `func_did` needs an `unsafe` context or not, i.e. whether
/// the called function has target features the calling function hasn't.
Checks whether calling `func_did` needs an `unsafe` context or not, i.e. whether
the called function has target features the calling function hasn't.
Checks whether calling ` func_did ` needs an ` unsafe ` context or not i . e . whether the called function has target features the calling function hasn ' t .
fn check_target_features(&mut self, func_did: DefId) {
        let callee_features = &self.tcx.codegen_fn_attrs(func_did).target_features;
        let self_features = &self.tcx.codegen_fn_attrs(self.body_did).target_features;
        // Is `callee_features` a subset of `calling_features`?
        if !callee_features
            .iter()
            .all(|feature| self_features.contains(feature))
        {
            self.require_unsafe(
                UnsafetyViolationKind::General,
                UnsafetyViolationDetails::CallToFunctionWith,
            )
        }
    }
fn check_target_features ( & mut self , func_did : DefId ) { let callee_features = & self . tcx . codegen_fn_attrs ( func_did ) . target_features ; let self_features = & self . tcx . codegen_fn_attrs ( self . body_did ) . target_features ; // Is `callee_features` a subset of `calling_features`? if ! callee_features . iter ( ) . all ( | feature | self_features . contains ( feature ) ) { self . require_unsafe ( UnsafetyViolationKind :: General , UnsafetyViolationDetails :: CallToFunctionWith , ) } }
Checks whether calling `func_did` needs an `unsafe` context or not, i.e.
Checks whether calling ` func_did ` needs an ` unsafe ` context or not i . e .
&mut self
func_did
DefId