Fix feature builds.

This commit is contained in:
Stephen Chung 2021-01-21 10:32:05 +08:00
parent 62462ffead
commit f6553c1426
2 changed files with 4 additions and 8 deletions

View File

@ -327,10 +327,7 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
*stmt = if preserve_result { *stmt = if preserve_result {
// -> { expr, Noop } // -> { expr, Noop }
let mut statements = Vec::new(); Stmt::Block(vec![Stmt::Expr(expr), mem::take(&mut x.0)], pos)
statements.push(Stmt::Expr(expr));
statements.push(mem::take(&mut x.0));
Stmt::Block(statements, pos)
} else { } else {
// -> expr // -> expr
Stmt::Expr(expr) Stmt::Expr(expr)
@ -415,8 +412,7 @@ fn optimize_stmt(stmt: &mut Stmt, state: &mut State, preserve_result: bool) {
Stmt::Break(pos) => { Stmt::Break(pos) => {
// Only a single break statement - turn into running the guard expression once // Only a single break statement - turn into running the guard expression once
state.set_dirty(); state.set_dirty();
let mut statements = Vec::new(); let mut statements = vec![Stmt::Expr(mem::take(condition))];
statements.push(Stmt::Expr(mem::take(condition)));
if preserve_result { if preserve_result {
statements.push(Stmt::Noop(pos)) statements.push(Stmt::Noop(pos))
} }

View File

@ -1,6 +1,6 @@
//! Implementations of [`serde::Serialize`]. //! Implementations of [`serde::Serialize`].
use crate::dynamic::Union; use crate::dynamic::{Union, Variant};
use crate::stdlib::string::ToString; use crate::stdlib::string::ToString;
use crate::{Dynamic, ImmutableString}; use crate::{Dynamic, ImmutableString};
use serde::ser::{Serialize, SerializeMap, Serializer}; use serde::ser::{Serialize, SerializeMap, Serializer};
@ -34,7 +34,7 @@ impl Serialize for Dynamic {
} }
Union::FnPtr(f, _) => ser.serialize_str(f.fn_name()), Union::FnPtr(f, _) => ser.serialize_str(f.fn_name()),
#[cfg(not(feature = "no_std"))] #[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()), Union::Variant(v, _) => ser.serialize_str((***v).type_name()),