-
Notifications
You must be signed in to change notification settings - Fork 12
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Description
throwarg#F2CC_ n:uint11 = THROWARG;
Generated TS (invalid number 0xF2CC_):
// ...
export function loadTHROWARG(slice: Slice): THROWARG {
if (((slice.remainingBits >= 20) && (slice.preloadUint(20) == 0xF2CC_))) {
slice.loadUint(20);
let n: number = slice.loadUint(11);
return {
kind: 'THROWARG',
n: n,
}
}
throw new Error('Expected one of "THROWARG" in loading "THROWARG", but data does not satisfy any constructor');
}
export function storeTHROWARG(tHROWARG: THROWARG): (builder: Builder) => void {
return ((builder: Builder) => {
builder.storeUint(0xF2CC_, 20);
builder.storeUint(tHROWARG.n, 11);
})
}Generated C++, OK (via tlbc):
// ...
int THROWARG::check_tag(const vm::CellSlice& cs) const {
return cs.prefetch_ulong(13) == 0x1e59 ? throwarg : -1;
}
bool THROWARG::validate_skip(int* ops, vm::CellSlice& cs, bool weak) const {
return cs.fetch_ulong(13) == 0x1e59
&& cs.advance(11);
}
bool THROWARG::unpack(vm::CellSlice& cs, THROWARG::Record& data) const {
return cs.fetch_ulong(13) == 0x1e59
&& cs.fetch_uint_to(11, data.n);
}
bool THROWARG::unpack_throwarg(vm::CellSlice& cs, int& n) const {
return cs.fetch_ulong(13) == 0x1e59
&& cs.fetch_uint_to(11, n);
}
bool THROWARG::cell_unpack(Ref<vm::Cell> cell_ref, THROWARG::Record& data) const {
if (cell_ref.is_null()) { return false; }
auto cs = load_cell_slice(std::move(cell_ref));
return unpack(cs, data) && cs.empty_ext();
}
bool THROWARG::cell_unpack_throwarg(Ref<vm::Cell> cell_ref, int& n) const {
if (cell_ref.is_null()) { return false; }
auto cs = load_cell_slice(std::move(cell_ref));
return unpack_throwarg(cs, n) && cs.empty_ext();
}Steps to Reproduce
- Run
npx tlb report.tlb - Run
tlbc report.tlb
Environment
No response
Logs or Screenshots
No response
ilyar
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working