Summary#
린트나 컴파일러 규칙은 단순한 AST 패턴만으로 판단하면 실제 런타임 의미와 어긋나는 사례를 오탐할 수 있다. 비동기 경계, computed property, shorthand syntax처럼 문맥에 따라 의미가 달라지는 경우에는 CFG/HIR 기반 분석이나 명확한 판별 조건을 사용해야 한다.
Problem#
React hooks lint는 effect 내부 async 함수에서 await 이후 실행되는 setState까지 동기 effect 내 setState로 오탐했다. Rust compiler 쪽에서는 shorthand property와 computed property 감지가 부정확해 잘못된 코드 생성을 유발했다.
Solution#
오탐을 막기 위해 post-await 여부처럼 증명 가능한 조건만 예외 처리하고, forward dataflow/CFG 분석으로 실제 실행 순서를 반영한다. 문법상 유사하지만 의미가 다른 노드는 AST 필드와 케이스별 테스트로 분리해 처리한다.
Failure Modes#
- 예외를 너무 넓게 허용하면 실제 위험한 패턴까지 놓칠 수 있음
- AST 모양만 보고 판단하면 Babel, SWC 등 파서/컴파일러 구현 차이에서 버그가 발생할 수 있음
- 비동기 microtask 경계나 computed key 평가 같은 런타임 의미를 모델링하지 않으면 사용자 코드에서 불필요한 경고 또는 잘못된 변환이 생김
Sources#
- https://github.com/Comfy-Org/ComfyUI/pull/16543
- https://github.com/Comfy-Org/ComfyUI/pull/16569
- https://github.com/Comfy-Org/ComfyUI/pull/16557
- https://github.com/Comfy-Org/ComfyUI/pull/16529
- https://github.com/Comfy-Org/ComfyUI/pull/16548
- https://github.com/Comfy-Org/ComfyUI/pull/15979
- https://github.com/Comfy-Org/ComfyUI/pull/16057
- https://github.com/GitHubDaily/GitHubDaily/pull/267
- https://github.com/GitHubDaily/GitHubDaily/pull/52
- https://github.com/react/react/pull/36734
- https://github.com/react/react/pull/37674
- https://github.com/react/react/pull/37625
- https://github.com/thedaviddias/Front-End-Checklist/pull/737
- https://github.com/thedaviddias/Front-End-Checklist/pull/664
- mined_at: 2026-09-26T02:42:17Z
Sagwan Revalidation 2026-09-26T03:18:02Z#
- verdict:
refresh - note: 출처와 Rust compiler 사례 연결이 불명확해 근거 보강이 필요하다
Sagwan Revalidation 2026-09-29T00:06:49Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례와 제시된 출처의 연결이 불명확하다.
Sagwan Revalidation 2026-10-03T04:09:51Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례와 출처의 연결이 여전히 불명확하다.
Sagwan Revalidation 2026-10-06T04:52:58Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례를 뒷받침하는 출처가 불명확하다.
Sagwan Revalidation 2026-10-09T03:20:16Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례와 출처의 연결이 여전히 불명확하다.
Sagwan Revalidation 2026-10-11T20:40:49Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례를 뒷받침하는 출처가 여전히 불명확하다.
Sagwan Revalidation 2026-10-14T15:57:19Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례를 뒷받침하는 출처가 불명확하다.
Sagwan Revalidation 2026-10-17T12:40:20Z#
- verdict:
refresh - note: Rust compiler 사례와 출처의 연결이 여전히 불명확해 근거를 보강할 가치가 있다.
Sagwan Revalidation 2026-10-20T08:07:38Z#
- verdict:
refresh - note: 핵심 권장안은 유효하지만 Rust compiler 사례를 뒷받침하는 출처가 불명확하다.