diff --git a/servo/components/script/dom/bindings/trace.rs b/servo/components/script/dom/bindings/trace.rs index df681e3add9f..b566e972ec2d 100644 --- a/servo/components/script/dom/bindings/trace.rs +++ b/servo/components/script/dom/bindings/trace.rs @@ -425,6 +425,13 @@ unsafe impl JSTraceable for fn(A) -> B { } } +unsafe impl<'a, A, B> JSTraceable for fn(&A) -> B { + #[inline] + unsafe fn trace(&self, _: *mut JSTracer) { + // Do nothing + } +} + unsafe impl JSTraceable for IpcSender where T: for<'de> Deserialize<'de> + Serialize { #[inline] unsafe fn trace(&self, _: *mut JSTracer) { diff --git a/servo/components/script_plugins/utils.rs b/servo/components/script_plugins/utils.rs index 4f6fce2d0edf..45a348ea14f8 100644 --- a/servo/components/script_plugins/utils.rs +++ b/servo/components/script_plugins/utils.rs @@ -29,7 +29,7 @@ pub fn match_def_path(cx: &LateContext, def_id: DefId, path: &[&str]) -> bool { } pub fn in_derive_expn(span: Span) -> bool { - if let Some(i) = span.ctxt.outer().expn_info() { + if let Some(i) = span.ctxt().outer().expn_info() { if let ExpnFormat::MacroAttribute(n) = i.callee.format { n.as_str().contains("derive") } else { diff --git a/servo/rust-toolchain b/servo/rust-toolchain index 202c6314dd99..009c84eceb4f 100644 --- a/servo/rust-toolchain +++ b/servo/rust-toolchain @@ -1 +1 @@ -nightly-2017-08-30 +nightly-2017-08-31