diff options
author | Bastien Orivel <eijebong@bananium.fr> | 2018-05-29 12:33:02 +0200 |
---|---|---|
committer | Emilio Cobos Álvarez <emilio@crisal.io> | 2018-11-30 06:25:53 +0100 |
commit | 631871c553e16e020ea4161530b76d03b0c9bc3f (patch) | |
tree | bc724aba974a6abf0befb5f36643d649a2bc0330 /src/codegen/struct_layout.rs | |
parent | 33912cfcdc34bda21599de29cd7b4241eb7c341a (diff) |
Update quote and proc-macro.
I give up on the doc comments. This is a rebase of #1334 keeping the formatting
of the comments and using TokenStream::from_str instead because one can hope.
Fixes #1407.
Diffstat (limited to 'src/codegen/struct_layout.rs')
-rw-r--r-- | src/codegen/struct_layout.rs | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/src/codegen/struct_layout.rs b/src/codegen/struct_layout.rs index 0ea23ddf..921ab215 100644 --- a/src/codegen/struct_layout.rs +++ b/src/codegen/struct_layout.rs @@ -6,8 +6,7 @@ use ir::comp::CompInfo; use ir::context::BindgenContext; use ir::layout::Layout; use ir::ty::{Type, TypeKind}; -use quote; -use proc_macro2::{Term, Span}; +use proc_macro2::{self, Ident, Span}; use std::cmp; /// Trace the layout of struct. @@ -154,7 +153,7 @@ impl<'a> StructLayoutTracker<'a> { field_name: &str, field_ty: &Type, field_offset: Option<usize>, - ) -> Option<quote::Tokens> { + ) -> Option<proc_macro2::TokenStream> { let mut field_layout = field_ty.layout(self.ctx)?; if let TypeKind::Array(inner, len) = @@ -236,7 +235,7 @@ impl<'a> StructLayoutTracker<'a> { padding_layout.map(|layout| self.padding_field(layout)) } - pub fn pad_struct(&mut self, layout: Layout) -> Option<quote::Tokens> { + pub fn pad_struct(&mut self, layout: Layout) -> Option<proc_macro2::TokenStream> { debug!( "pad_struct:\n\tself = {:#?}\n\tlayout = {:#?}", self, @@ -310,13 +309,13 @@ impl<'a> StructLayoutTracker<'a> { align_to(self.latest_offset, layout.align) - self.latest_offset } - fn padding_field(&mut self, layout: Layout) -> quote::Tokens { + fn padding_field(&mut self, layout: Layout) -> proc_macro2::TokenStream { let ty = helpers::blob(self.ctx, layout); let padding_count = self.padding_count; self.padding_count += 1; - let padding_field_name = Term::new(&format!("__bindgen_padding_{}", padding_count), Span::call_site()); + let padding_field_name = Ident::new(&format!("__bindgen_padding_{}", padding_count), Span::call_site()); self.max_field_align = cmp::max(self.max_field_align, layout.align); |