bindings: hir_vec![
hir::TypeBinding {
hir_id: this.next_id(),
- ident: Ident::from_str(FN_OUTPUT_NAME),
+ ident: Ident::with_empty_ctxt(FN_OUTPUT_NAME),
ty: output
.as_ref()
.map(|ty| this.lower_ty(&ty, ImplTraitContext::disallowed()))
let future_params = P(hir::GenericArgs {
args: hir_vec![],
bindings: hir_vec![hir::TypeBinding {
- ident: Ident::from_str(FN_OUTPUT_NAME),
+ ident: Ident::with_empty_ctxt(FN_OUTPUT_NAME),
ty: output_ty,
hir_id: self.next_id(),
span,
projection_ty: ty::ProjectionTy::from_ref_and_name(
tcx,
trait_ref,
- Ident::from_str(FN_OUTPUT_NAME),
+ Ident::with_empty_ctxt(FN_OUTPUT_NAME),
),
ty: ret_type
}
use std::sync::mpsc::{Sender};
use syntax_pos::{SpanData};
+use syntax::symbol::{Symbol, sym};
use rustc_macros::HashStable;
use crate::ty::TyCtxt;
use crate::dep_graph::{DepNode};
use crate::session::Session;
// The name of the associated type for `Fn` return types
-pub const FN_OUTPUT_NAME: &str = "Output";
+pub const FN_OUTPUT_NAME: Symbol = sym::Output;
// Useful type to use with `Result<>` indicate that an error has already
// been reported to the user, so no need to continue checking.
option,
Option,
opt_out_copy,
+ Output,
overlapping_marker_traits,
packed,
panic_handler,