규칙 3.4
이 페이지에서

규칙 3.4

3장, 텍스트 구조와 이름 테스트

A local variable, parameter, module constant or module variable that collides with a GLSL ES 3.00 identifier restriction must be renamed consistently by the GLSL writer; helper function renaming retains its existing behavior. A struct, field, override or binding whose emitted name is reserved remains a warning, and the GLSL emit must fail closed on it.

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

근거

GLSL’s variable spellings can change without changing source values. The remaining names belong to interface or host contracts; GLSL is the second target, so its refusal keeps WGSL available.

출처

ANGLE at shader version 300, including the gl_ prefix and __ shape restrictions, and the shared GLSL_ES300_RESERVED authority.

검증 방식

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

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

sanitizeVariableNames and sanitizeReservedIdents in src/core/backends/glsl-sanitize.ts, the TS8068 warning from reportReservedNames for unchanged interface names, and src/compiler/ts/reserved-names.test.ts.

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

적용하는 오류 코드

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

TS8068 RESERVED_NAME
A declared name that a target reserves, checked on the name the emit actually carries: half as a struct field, which ANGLE answers with "Illegal use of reserved word" in generated text the author never wrote.

함께 보기

소스

커밋 c66579bf의 규칙 원문:

이 페이지 편집 문제 보고