From f6553c1426d134ebfea313725441f5621c0e5e04 Mon Sep 17 00:00:00 2001 From: Stephen Chung Date: Thu, 21 Jan 2021 10:32:05 +0800 Subject: [PATCH] Fix feature builds. --- src/optimize.rs | 8 ++------ src/serde_impl/serialize.rs | 4 ++-- 2 files changed, 4 insertions(+), 8 deletions(-) diff --git a/src/optimize.rs b/src/optimize.rs index 2cc27819..6a0864f0 100644 --- a/src/optimize.rs +++ b/src/optimize.rs @@ -327,10 +327,7 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) { *stmt = if preserve_result { // -> { expr, Noop } - let mut statements = Vec::new(); - statements.push(Stmt::Expr(expr)); - statements.push(mem::take(&mut x.0)); - Stmt::Block(statements, pos) + Stmt::Block(vec![Stmt::Expr(expr), mem::take(&mut x.0)], pos) } else { // -> expr Stmt::Expr(expr) @@ -415,8 +412,7 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) { Stmt::Break(pos) => { // Only a single break statement - turn into running the guard expression once state.set_dirty(); - let mut statements = Vec::new(); - statements.push(Stmt::Expr(mem::take(condition))); + let mut statements = vec![Stmt::Expr(mem::take(condition))]; if preserve_result { statements.push(Stmt::Noop(pos)) } diff --git a/src/serde_impl/serialize.rs b/src/serde_impl/serialize.rs index a4d011de..49dbf71a 100644 --- a/src/serde_impl/serialize.rs +++ b/src/serde_impl/serialize.rs @@ -1,6 +1,6 @@ //! Implementations of [`serde::Serialize`]. -use crate::dynamic::Union; +use crate::dynamic::{Union, Variant}; use crate::stdlib::string::ToString; use crate::{Dynamic, ImmutableString}; use serde::ser::{Serialize, SerializeMap, Serializer}; @@ -34,7 +34,7 @@ impl Serialize for Dynamic { } Union::FnPtr(f, _) => ser.serialize_str(f.fn_name()), #[cfg(not(feature = "no_std"))] - Union::TimeStamp(x, _) => ser.serialize_str((**x).type_name()), + Union::TimeStamp(x, _) => ser.serialize_str(x.as_ref().type_name()), Union::Variant(v, _) => ser.serialize_str((***v).type_name()),