| 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"); | |
| } |