Skip to content

Commit

Permalink
tmp
Browse files Browse the repository at this point in the history
  • Loading branch information
PolyProgrammist committed Nov 20, 2023
1 parent f0f1e95 commit 137897b
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 55 deletions.
100 changes: 50 additions & 50 deletions generated.ts
Original file line number Diff line number Diff line change
Expand Up @@ -722,56 +722,6 @@ export function storeUnary(unary: Unary): (builder: Builder) => void {
};
throw new Error('');
}
export type Same<X> = Same_g<X> | Same_t<X>;
export type Same_g<X> = {
kind: 'Same_g';
Y: number;
x: number;
};
export type Same_t<X> = {
kind: 'Same_t';
Y: number;
y: number;
z: number;
};
export function loadSame<X>(slice: Slice, loadX: (slice: Slice) => X): Same<X> {
if (slice.preloadUint(1) == 0b0) {
let x: number;
x = slice.loadUint(32);
return {
kind: 'Same_g',
x: x
};
};
if (slice.preloadUint(1) == 0b1) {
let y: number;
y = slice.loadUint(32);
let z: number;
z = slice.loadUint(32);
return {
kind: 'Same_t',
y: y,
z: z
};
};
throw new Error('');
}
export function storeSame<X>(same: Same<X>, storeX: (x: X) => (builder: Builder) => void): (builder: Builder) => void {
if (same.kind == 'Same_g') {
return (builder: Builder) => {
builder.storeUint(0b0, 1);
builder.storeUint(same.x, 32);
};
};
if (same.kind == 'Same_t') {
return (builder: Builder) => {
builder.storeUint(0b1, 1);
builder.storeUint(same.y, 32);
builder.storeUint(same.z, 32);
};
};
throw new Error('');
}
export type Const = Const_a | Const_b;
export type Const_a = {
kind: 'Const_a';
Expand Down Expand Up @@ -966,3 +916,53 @@ export function storeParamDifNames(paramDifNames: ParamDifNames): (builder: Buil
};
throw new Error('');
}
export type Same<X> = Same_g<X> | Same_t<X>;
export type Same_g<X> = {
kind: 'Same_g';
Y: number;
x: number;
};
export type Same_t<X> = {
kind: 'Same_t';
Y: number;
y: number;
z: number;
};
export function loadSame<X>(slice: Slice, loadX: (slice: Slice) => X): Same<X> {
if (slice.preloadUint(1) == 0b0) {
let x: number;
x = slice.loadUint(32);
return {
kind: 'Same_g',
x: x
};
};
if (slice.preloadUint(1) == 0b1) {
let y: number;
y = slice.loadUint(32);
let z: number;
z = slice.loadUint(32);
return {
kind: 'Same_t',
y: y,
z: z
};
};
throw new Error('');
}
export function storeSame<X>(same: Same<X>, storeX: (x: X) => (builder: Builder) => void): (builder: Builder) => void {
if (same.kind == 'Same_g') {
return (builder: Builder) => {
builder.storeUint(0b0, 1);
builder.storeUint(same.x, 32);
};
};
if (same.kind == 'Same_t') {
return (builder: Builder) => {
builder.storeUint(0b1, 1);
builder.storeUint(same.y, 32);
builder.storeUint(same.z, 32);
};
};
throw new Error('');
}
9 changes: 4 additions & 5 deletions tests/fixtures/tlb/my.tlb
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,6 @@ unary_zero$0 = Unary ~0;
unary_succ$1 {n:#} x:(Unary ~n) = Unary ~(n + 1);


g$0 {X:Type} {Y:#} x:# {~Y = x} = Same X ~Y;
t$1 {X:Type} {Y:#} y:# z:# {~Y = y} = Same X ~(Y + 1);


a$0 x:# = Const 1;
b$1 {X:#} y:(## 2) = Const X;

Expand All @@ -76,4 +72,7 @@ d$_ test:# = ParamConst 4 2;

a$0 = ParamDifNames 1 ~0;
b$1 {n:#} x:(ParamDifNames 2 ~n) = ParamDifNames 2 ~(n + 1);
c$0 {m:#} x:(ParamDifNames 3 ~m) = ParamDifNames 3 ~(m * 2);
c$0 {m:#} x:(ParamDifNames 3 ~m) = ParamDifNames 3 ~(m * 2);

g$0 {X:Type} {Y:#} x:# {~Y = x} = Same X ~Y;
t$1 {X:Type} {Y:#} y:# z:# {~Y = y} = Same X ~(Y + 1);

0 comments on commit 137897b

Please sign in to comment.