- quad-base/src: Void.luau(단일 no-op), Brand.luau(Brand() + 브랜드 인스턴스 15 + M2 is* 11), LifetimeHandle.luau(InitLifetimeHandle — 모듈 인스턴스에 영어 level 2 에러 스텁 4종), Ref.luau(.Value/.Revision/:Set/:Callback/:WeakCallback/:Uncallback, EpochBrand+RefBrand), init.luau 재export. Relate.luau는 타입만 quad-types에서 재export. - quad-types: Quad에 M2 첫 단위 탑레벨 값 + Ref<T>/RefCallback<T>/Relate/Epoch 타입. - test/mock.luau: installLifetime(quad) — lifecycle-pattern.md (0)/(1) 스케치 그대로, Destroy가 모든 Connection을 끊도록 보강(gcconn 판정 근거). - scripts/test.sh: spec.* 수집 + luau-analyze(src/spec/mock). 전부 ALL PASS, analyze 0건. - 발견 ①: H-165 pesde shim은 생성 시점 export 타입만 안다(project-setup-plan.md), H-166 Ref.Revision 초기값 0(ref-plan.md). ROADMAP 공통 기반 체크박스 완료 표기. Co-authored-by: qwreey <me@qwreey.moe>
22 lines
747 B
Text
22 lines
747 B
Text
--[[ Void 계약 — `H-162`: 단일 no-op 함수, 반환값 없음, 항상 같은 함수 ]]
|
|
|
|
local Quad = require("../src")
|
|
local Void = require("../src/Void")
|
|
|
|
print("=== 1. 항등 — Quad.Void와 Void.luau가 같은 함수, 매 require도 같음 ===")
|
|
do
|
|
assert(Quad.Void == Void, "Quad.Void is the very same function as Void.luau")
|
|
assert(require("../src/Void") == Void, "module caching keeps one identity")
|
|
print("PASS")
|
|
end
|
|
|
|
print()
|
|
print("=== 2. no-op — 어떤 인자로 불러도 아무것도 반환하지 않음 ===")
|
|
do
|
|
assert(select("#", Void()) == 0, "Void() returns nothing")
|
|
assert(select("#", Void(1, "a", {}, nil)) == 0, "Void(...) returns nothing regardless of args")
|
|
print("PASS")
|
|
end
|
|
|
|
print()
|
|
print("=== ALL PASS ===")
|