From 045408af37b3a22e3063ef6bef1a770baab46378 Mon Sep 17 00:00:00 2001 From: Ukendio Date: Wed, 26 Mar 2025 04:59:11 +0100 Subject: [PATCH] Rollback types --- jecs.luau | 9 +++++---- test/tests.luau | 17 +++++++++-------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/jecs.luau b/jecs.luau index 7ac815a..d673721 100644 --- a/jecs.luau +++ b/jecs.luau @@ -2374,9 +2374,10 @@ end World.new = world_new -export type Entity = { __nominal_entity: "Tag", __phantom_data: T } -export type Id = { __phantom_data: T } -export type Pair = { __phantom_data: P } +export type Entity = { __T: T } +export type Id = { __T: T } +export type Pair = Id

+type ecs_id_t = Id | Pair | Pair<"Tag", T> export type Item = (self: Query) -> (Entity, T...) export type Iter = (query: Query) -> () -> (Entity, T...) @@ -2500,7 +2501,7 @@ return { Name = EcsName :: Entity, Rest = EcsRest :: Entity, - pair = (ECS_PAIR :: any) :: (first: P, second: O) -> Pair, + pair = (ECS_PAIR :: any) :: (first: Id

, second: Id) -> Pair, -- Inwards facing API for testing ECS_ID = ECS_ENTITY_T_LO, diff --git a/test/tests.luau b/test/tests.luau index a76bf48..d676a71 100644 --- a/test/tests.luau +++ b/test/tests.luau @@ -242,9 +242,9 @@ end) TEST("world:cleanup()", function() local world = world_new() - local A = world:component() - local B = world:component() - local C = world:component() + local A = world:component() :: jecs.Id + local B = world:component() :: jecs.Id + local C = world:component() :: jecs.Id local e1 = world:entity() local e2 = world:entity() @@ -355,7 +355,7 @@ TEST("world:entity()", function() do CASE "Recycling max generation" local world = world_new() - local pin = jecs.Rest::number + 1 + local pin = (jecs.Rest :: any) :: number + 1 for i = 1, 2^16-1 do local e = world:entity() world:delete(e) @@ -569,21 +569,22 @@ TEST("world:query()", function() do CASE "pairs" local world = jecs.World.new() - local C1 = world:component() - local C2 = world:component() + local C1 = world:component() :: jecs.Id + local C2 = world:component() :: jecs.Id local T1 = world:entity() local T2 = world:entity() local e = world:entity() - world:set(e, pair(C1, C2), true) + local C1_C2 = pair(C1, C2) + world:set(e, C1_C2, true) world:set(e, pair(C1, T1), true) world:set(e, pair(T1, C1), true) CHECK_EXPECT_ERR(function() world:set(e, pair(T1, T2), true :: any) end) - for id, a, b, c, d in world:query(pair(C1, C2), pair(C1, T1), pair(T1, C1), pair(T1, T2)) :: any do + for id, a, b, c, d in world:query(pair(C1, C2), pair(C1, T1), pair(T1, C1), pair(T1, T2)):iter() do CHECK(a == true) CHECK(b == true) CHECK(c == true)