# Safety-qualified foreign functions and statics

unsafe extern "C" {
  #[link_name = "square_root"]
  pub safe fn sqrt(value: f64) -> f64;
  pub safe static TAU: f64;
  pub unsafe static EXPLICIT_UNSAFE: i32;
}

==>

SourceFile(
  ForeignModItem(
    unsafe,
    extern,
    String,
    DeclarationList(
      AttributeItem(
        Attribute(MetaItem(Identifier, String)),
        FunctionItem(
          Vis(pub),
          safe,
          fn,
          BoundIdentifier,
          ParamList(Parameter(BoundIdentifier, TypeIdentifier)),
          TypeIdentifier)),
      StaticItem(
        Vis(pub),
        safe,
        static,
        BoundIdentifier,
        TypeIdentifier),
      StaticItem(
        Vis(pub),
        unsafe,
        static,
        BoundIdentifier,
        TypeIdentifier))))
