Skip to content

Commit 00f8b62

Browse files
authored
fix: Remove redundant InferReturn<T> (#1338)
1 parent 3ac9bd8 commit 00f8b62

File tree

2 files changed

+8
-26
lines changed

2 files changed

+8
-26
lines changed

packages/typegpu/src/core/function/fnTypes.ts

Lines changed: 3 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,13 @@ export type InferArgs<T extends unknown[]> = {
4040
[Idx in keyof T]: Infer<T[Idx]>;
4141
};
4242

43-
export type InferReturn<T> = T extends undefined
44-
// biome-ignore lint/suspicious/noConfusingVoidType: <void is used as a return type>
45-
? void
46-
: Infer<T>;
47-
4843
export type JsImplementation<
49-
Args extends unknown[] | Record<string, unknown> =
50-
| unknown[]
51-
| Record<string, unknown>,
44+
Args extends unknown[] | [] = unknown[] | [],
5245
Return = unknown,
53-
> = (
54-
...args: Args extends unknown[] ? InferArgs<Args>
55-
: Args extends Record<string, never> ? []
56-
: [InferIO<Args>]
57-
) => InferReturn<Return>;
46+
> = (...args: InferArgs<Args>) => Infer<Return>;
5847

5948
export type Implementation<
60-
Args extends unknown[] | Record<string, unknown> =
61-
| unknown[]
62-
| Record<string, unknown>,
49+
Args extends unknown[] | [] = unknown[] | [],
6350
Return = unknown,
6451
> = string | JsImplementation<Args, Return>;
6552

packages/typegpu/src/core/function/tgpuFn.ts

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,12 +22,7 @@ import {
2222
type TgpuSlot,
2323
} from '../slot/slotTypes.ts';
2424
import { createFnCore, type FnCore } from './fnCore.ts';
25-
import type {
26-
Implementation,
27-
InferArgs,
28-
InferReturn,
29-
JsImplementation,
30-
} from './fnTypes.ts';
25+
import type { Implementation, InferArgs, JsImplementation } from './fnTypes.ts';
3126
import { stripTemplate } from './templateUtils.ts';
3227

3328
// ----------
@@ -58,7 +53,7 @@ export type TgpuFnShell<
5853
> =
5954
& TgpuFnShellHeader<Args, Return>
6055
& ((
61-
implementation: (...args: InferArgs<Args>) => InferReturn<Return>,
56+
implementation: (...args: InferArgs<Args>) => Infer<Return>,
6257
) => TgpuFn<Args, Return>)
6358
& ((implementation: string) => TgpuFn<Args, Return>)
6459
& ((
@@ -73,7 +68,7 @@ export type TgpuFnShell<
7368
& ((
7469
implementation: (
7570
...args: InferArgs<Args>
76-
) => InferReturn<Return>,
71+
) => Infer<Return>,
7772
) => TgpuFn<Args, Return>)
7873
& ((implementation: string) => TgpuFn<Args, Return>);
7974
};
@@ -103,7 +98,7 @@ export type TgpuFn<
10398
Return extends AnyData = AnyData,
10499
> =
105100
& TgpuFnBase<Args, Return>
106-
& ((...args: InferArgs<Args>) => InferReturn<Return>);
101+
& ((...args: InferArgs<Args>) => Infer<Return>);
107102

108103
export function fn<
109104
Args extends AnyData[] | [],
@@ -135,7 +130,7 @@ export function fn<
135130
}) as TgpuFnShell<Args, Return>;
136131
}
137132

138-
export function isTgpuFn<Args extends AnyData[], Return extends AnyData>(
133+
export function isTgpuFn<Args extends AnyData[] | [], Return extends AnyData>(
139134
value: unknown | TgpuFn<Args, Return>,
140135
): value is TgpuFn<Args, Return> {
141136
return !!(value as TgpuFn<Args, Return>)?.[$internal] &&

0 commit comments

Comments
 (0)