blob: 9c3f956c37df4317a1b28d7dc9840852b76471b1 [file] [log] [blame] [edit]
use rustc_public_bridge::IndexedVal;
use crate::abi::Layout;
use crate::mir::alloc::AllocId;
use crate::mir::mono::InstanceDef;
use crate::ty::{MirConstId, TyConstId, VariantIdx};
use crate::{CrateNum, DefId, Span, ThreadLocalIndex, Ty};
#[track_caller]
fn check_serialize<T: serde::Serialize>(value: T, expected_json: &str) {
let got_json = serde_json::to_string(&value).unwrap();
assert_eq!(got_json, expected_json, "didn't get expected json for serializing");
}
#[test]
fn serialize_cratenum() {
check_serialize(CrateNum(1, ThreadLocalIndex), "1");
}
#[test]
fn serialize_defid() {
check_serialize(DefId::to_val(2), "2");
}
#[test]
fn serialize_layout() {
check_serialize(Layout::to_val(3), "3");
}
#[test]
fn serialize_allocid() {
check_serialize(AllocId::to_val(4), "4");
}
#[test]
fn serialize_ty() {
check_serialize(Ty::to_val(5), "5");
}
#[test]
fn serialize_tyconstid() {
check_serialize(TyConstId::to_val(6), "6");
}
#[test]
fn serialize_mirconstid() {
check_serialize(MirConstId::to_val(7), "7");
}
#[test]
fn serialize_span() {
check_serialize(Span::to_val(8), "8");
}
#[test]
fn serialize_variantidx() {
check_serialize(VariantIdx::to_val(9), "9");
}
#[test]
fn serialize_instancedef() {
check_serialize(InstanceDef::to_val(10), "10");
}