Merge pull request #839 from serde-rs/conv

Remove questionable type conversions
This commit is contained in:
David Tolnay
2017-04-05 08:11:50 -07:00
committed by GitHub
3 changed files with 111 additions and 127 deletions
+111 -51
View File
@@ -245,18 +245,6 @@ declare_tests! {
}
test_unit {
() => &[Token::Unit],
() => &[
Token::SeqStart(Some(0)),
Token::SeqEnd,
],
() => &[
Token::SeqStart(None),
Token::SeqEnd,
],
() => &[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
],
}
test_unit_struct {
UnitStruct => &[Token::Unit],
@@ -272,9 +260,6 @@ declare_tests! {
Token::SeqEnd,
],
}
test_unit_string {
String::new() => &[Token::Unit],
}
test_tuple_struct {
TupleStruct(1, 2, 3) => &[
Token::SeqStart(Some(3)),
@@ -326,9 +311,6 @@ declare_tests! {
],
}
test_btreeset {
BTreeSet::<isize>::new() => &[
Token::Unit,
],
BTreeSet::<isize>::new() => &[
Token::SeqStart(Some(0)),
Token::SeqEnd,
@@ -355,18 +337,12 @@ declare_tests! {
Token::SeqEnd,
Token::SeqEnd,
],
BTreeSet::<isize>::new() => &[
Token::UnitStruct("Anything"),
],
BTreeSet::<isize>::new() => &[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
],
}
test_hashset {
HashSet::<isize>::new() => &[
Token::Unit,
],
HashSet::<isize>::new() => &[
Token::SeqStart(Some(0)),
Token::SeqEnd,
@@ -383,9 +359,6 @@ declare_tests! {
Token::I32(3),
Token::SeqEnd,
],
HashSet::<isize>::new() => &[
Token::UnitStruct("Anything"),
],
HashSet::<isize>::new() => &[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
@@ -404,9 +377,6 @@ declare_tests! {
],
}
test_vec {
Vec::<isize>::new() => &[
Token::Unit,
],
Vec::<isize>::new() => &[
Token::SeqStart(Some(0)),
Token::SeqEnd,
@@ -433,18 +403,12 @@ declare_tests! {
Token::SeqEnd,
Token::SeqEnd,
],
Vec::<isize>::new() => &[
Token::UnitStruct("Anything"),
],
Vec::<isize>::new() => &[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
],
}
test_array {
[0; 0] => &[
Token::Unit,
],
[0; 0] => &[
Token::SeqStart(Some(0)),
Token::SeqEnd,
@@ -497,9 +461,6 @@ declare_tests! {
Token::SeqEnd,
Token::SeqEnd,
],
[0; 0] => &[
Token::UnitStruct("Anything"),
],
[0; 0] => &[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
@@ -544,9 +505,6 @@ declare_tests! {
],
}
test_btreemap {
BTreeMap::<isize, isize>::new() => &[
Token::Unit,
],
BTreeMap::<isize, isize>::new() => &[
Token::MapStart(Some(0)),
Token::MapEnd,
@@ -589,18 +547,12 @@ declare_tests! {
Token::MapEnd,
Token::MapEnd,
],
BTreeMap::<isize, isize>::new() => &[
Token::UnitStruct("Anything"),
],
BTreeMap::<isize, isize>::new() => &[
Token::StructStart("Anything", 0),
Token::StructEnd,
],
}
test_hashmap {
HashMap::<isize, isize>::new() => &[
Token::Unit,
],
HashMap::<isize, isize>::new() => &[
Token::MapStart(Some(0)),
Token::MapEnd,
@@ -643,9 +595,6 @@ declare_tests! {
Token::MapEnd,
Token::MapEnd,
],
HashMap::<isize, isize>::new() => &[
Token::UnitStruct("Anything"),
],
HashMap::<isize, isize>::new() => &[
Token::StructStart("Anything", 0),
Token::StructEnd,
@@ -1119,4 +1068,115 @@ declare_error_tests! {
],
Error::Message("nul byte found in provided data at position: 2".into()),
}
test_unit_from_empty_seq<()> {
&[
Token::SeqStart(Some(0)),
Token::SeqEnd,
],
Error::Message("invalid type: sequence, expected unit".into()),
}
test_unit_from_empty_seq_without_len<()> {
&[
Token::SeqStart(None),
Token::SeqEnd,
],
Error::Message("invalid type: sequence, expected unit".into()),
}
test_unit_from_tuple_struct<()> {
&[
Token::TupleStructStart("Anything", 0),
Token::TupleStructEnd,
],
Error::Message("invalid type: sequence, expected unit".into()),
}
test_string_from_unit<String> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a string".into()),
}
test_btreeset_from_unit<BTreeSet<isize>> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_btreeset_from_unit_struct<BTreeSet<isize>> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_hashset_from_unit<HashSet<isize>> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_hashset_from_unit_struct<HashSet<isize>> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_vec_from_unit<Vec<isize>> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_vec_from_unit_struct<Vec<isize>> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected a sequence".into()),
}
test_zero_array_from_unit<[isize; 0]> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected an empty array".into()),
}
test_zero_array_from_unit_struct<[isize; 0]> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected an empty array".into()),
}
test_btreemap_from_unit<BTreeMap<isize, isize>> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a map".into()),
}
test_btreemap_from_unit_struct<BTreeMap<isize, isize>> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected a map".into()),
}
test_hashmap_from_unit<HashMap<isize, isize>> {
&[
Token::Unit,
],
Error::Message("invalid type: unit value, expected a map".into()),
}
test_hashmap_from_unit_struct<HashMap<isize, isize>> {
&[
Token::UnitStruct("Anything"),
],
Error::Message("invalid type: unit value, expected a map".into()),
}
test_bool_from_string<bool> {
&[
Token::Str("false"),
],
Error::Message("invalid type: string \"false\", expected a boolean".into()),
}
test_number_from_string<isize> {
&[
Token::Str("1"),
],
Error::Message("invalid type: string \"1\", expected isize".into()),
}
}