규칙 8.6
이 페이지에서

규칙 8.6

8장, 함수와 진입점 테스트

An entry point must not be called from another function, and neither may a kernel function (Rule 8.22).

규칙 본문과 그 아래 항목은 설계 문서에 적힌 컴파일러 원문이라 한국어 페이지에서도 영어로 둡니다.

근거

WGSL forbids it, and an entry’s parameters are stage inputs no caller can supply. A kernel function’s arrays are the call’s storage, which no shader function can hand over, and its loops are dispatches the host makes.

출처

Restrictions on Functions (“an entry point must never be the target of a function call”).

검증 방식

테스트로 확인합니다. 테스트나 게이트 스크립트, CI 워크플로가 이 규칙을 가리키고, 아래 파일 가운데 하나라도 규칙을 더는 가리키지 않으면 추적 검사가 실패합니다.

컴파일러가 이 규칙을 적용하는 곳을 규칙이 직접 적은 내용입니다.

TS8099 ("fs" is a fragment entry point and cannot be called; the pipeline invokes it. Move the body into a plain function and call that from both.), pinned by src/compiler/ts/operators-statements.test.ts (refuses calling an entry point) (#160); for a kernel function TS8099 ("total" is a kernel function, which host code calls and whose arrays are the call's storage, so no function can call it. …), pinned by src/compiler/ts/kernel-loops.test.ts in the compiler and the language service.

커밋 c66579bf에서 이 규칙을 확인하는 파일입니다. 파일마다 규칙을 처음 가리키는 줄로 연결했습니다.

설명하는 절

커밋 c66579bf의 표면 문서에서 이 규칙을 설명하는 절입니다.

적용하는 오류 코드

규칙이 Enforced by 항목에서 가리키는 진단 코드와, 레지스트리 설명에서 이 규칙을 가리키는 진단 코드입니다.

TS8099 UNSUPPORTED
UNSUPPORTED (TS8099) is the one deliberate exception to "sequential": it is the catch-all for a diagnostic whose site does not yet deserve its own code, so it stays parked past the sequential range instead of at its head.

함께 보기

소스

커밋 c66579bf의 규칙 원문:

이 페이지 편집 문제 보고