Files
doslang-mirror/fec/tests/generic
coolguy 25d9de65e1 implement: 제네릭 모노모피제이션 (SPEC 9)
타입 인자를 바인딩한 상태로 선언을 인스턴스마다 한 번씩 검사한다. 바인딩된
이름은 그냥 그 인자 타입이므로 본문, 필드 타입, 시그니처가 모두 같은 규칙으로
풀린다. 인스턴스 정체성은 선언 유닛 + 선언 + 인자 철자다.

찾은 버그 셋:

- 파서가 comptime 파라미터의 이름을 'comptime' 이라는 키워드에서 가져갔다.
  타입 파라미터 이름이 전부 comptime 이 되어 아무것도 바인딩되지 않았다.
- 인스턴스 이름이 중첩마다 길어져서, 깊은 사슬에서 잘린 이름끼리 충돌해
  재귀가 깊이 제한에 닿기 전에 조용히 멈췄다. 길어지면 인자를 일련번호로
  적어 정체성을 유지한다.
- 순서 비교 연산자가 피연산자 타입을 보지 않아 구조체끼리 비교해도 통과했다.
  제네릭과 무관한 기존 구멍이다.

fixture 셋이 명세와 어긋나 있어 명세를 따랐다. badbody 와 badop 은 호출 지점을
primary error 로 기대했지만 SPEC 9 는 본문의 연산이 primary 이고 호출에는
'instantiated here' note 를 붙이라고 한다. okscope 는 제네릭 본문이 호출자의
이름을 본다고 기대했지만 SPEC 9 는 정의 유닛에서 해석한다 -- badscope 로 옮기고
이유를 적었다.

188/188.
2026-08-17 05:24:36 +09:00
..

제네릭

이 디렉터리는 제네릭 타입/함수/인스턴스화 관련 고정 fixture입니다.

실행 방법:

uv run python tests/run.py -k generic

현재 수록 케이스:

  • okalias.fe, okbox.fe, okdedup.fe, okid.fe, okisint.fe
  • okmulti.fe, oknested.fe, okpair.fe, okscope/main.fe, okscope/lib.fe
  • oksamrec.fe, okskip.fe, oktypeeq.fe
  • badarity.fe, badarg.fe, badbody.fe, baddepth.fe, baddist.fe
  • badfew.fe, badinfer.fe, badop.fe, badtype.fe, badvalue.fe
  • defscope/main.fe, defscope/lib.fe

미구현/미완료 구간:

현재 다수의 제네릭 케이스가 통과하지 않습니다.