2.3 KiB
2.3 KiB
Frontend gap audit
- 날짜: 2026-08-17
- 기준 커밋:
6dc298d828872409fdf6b7d2e85830f18a118d9f - 범위: parser, checker, 전역 lowering의 경계
재현된 문제
아래 최소 입력은 발견 시점의 fec --check를 모두 통과했다.
| ID | 문제 | 필요한 fixture |
|---|---|---|
| FRONT-01 | runtime 호출을 const 초기값으로 허용하고 lowering에서 초기값을 방출하지 않음 |
types/badcini.fe |
| FRONT-02 | runtime 호출을 static 초기값으로 허용하고 저장소를 0으로 초기화 |
types/badsini.fe |
| FRONT-03 | bool 비교 체이닝 허용: true == false == true |
types/badchain.fe |
| FRONT-04 | 괄호 없는 단항식 뒤 cast 허용: -x as u32 |
types/badunas.fe |
| FRONT-05 | unsafe 밖에서 asm 허용 |
types/badasm.fe |
| FRONT-06 | ABI 문자열 없는 extern fn f(); 허용 |
types/badexns.fe |
| FRONT-07 | extern "c" 이외 ABI 문자열 허용 |
types/badexab.fe |
| FRONT-08 | extern 함수 본문 허용 | types/badexbd.fe |
| FRONT-09 | extern이 아닌 본문 없는 fn f();를 외부 심볼로 처리 |
types/badfnsm.fe |
| FRONT-10 | 빈 enum 선언 허용 | parse/bademen.fe |
| FRONT-11 | 빈 error 선언 허용 | parse/bademer.fe |
중복 struct field와 중복 enum variant 선언도 통과했지만, 중복 선언 규칙을 SPEC에서 먼저 확정해야 하므로 위 목록에는 넣지 않았다.
이미 알려진 실행 문제
0b와 0o 리터럴은 lexer가 받지만 값 계산이 진법을 반영하지 않는다. 실행 결과를
고정하는 exec/radix.fe가 필요하다.
테스트 기반의 빈틈
parse/ fixture는 --dump-ast의 성공 여부만 검사하고 트리 내용은 비교하지 않는다.
따라서 연산자 우선순위나 postfix 결합 방향은 parse fixture만으로 고정되지 않는다.
이런 항목은 실행 결과로 구별하거나 선택적인 AST 기대값 검사를 추가해야 한다.
검증
uv run python tests/run.py:245/245통과- 각 문제를 독립적인 최소 입력으로 만들어
--check결과를 확인함 - 조사용 임시 입력은 제거함
이 문서는 발견 시점의 상태를 기록한다. 작성 중인 미커밋 수정으로 일부 항목의 상태가 바뀔 수 있으므로 해결 여부는 fixture와 두 테스트 suite로 확인한다.