TS8074
프런트엔드 코드 REFERENCE_ALIAS
Two references to one place in one call (Rule 8.25, surface §70, proposal 0040): two arguments a callee takes by reference whose places share a root (swap(ref(x), ref(x)), swap(ref(o.a), ref(o.b))), a method's object or a variable a local function writes beside a ref(...) of the same root, and a ref(...) of a module variable or binding that the callee also reads or writes directly.
이 커밋에는 아직 이 코드의 예제가 없습니다.
레지스트리 설명과 컴파일러 메시지는 컴파일러 원문이라 한국어 페이지에서도 영어로 둡니다.
발생 조건
Two references to one place in one call (Rule 8.25, surface §70, proposal 0040): two arguments a callee takes by reference whose places share a root (swap(ref(x), ref(x)), swap(ref(o.a), ref(o.b))), a method's object or a variable a local function writes beside a ref(...) of the same root, and a ref(...) of a module variable or binding that the callee also reads or writes directly. WGSL's alias analysis refuses the same programs; GLSL ES 3.00's copy-in and copy-out and the CPU's store-back would disagree on them.
이 코드가 적용하는 규칙
- 규칙 8.25 테스트
- A parameter declared
Ref<T>names the caller’s place, and the call passes it asref(place): reading the parameter reads that place, and assigning to it, or to a field, component or element of it, writes it, for the call.
함께 보기
소스
커밋 c66579bf에서 컴파일러가 이 코드를 내는 곳입니다. 파일마다 한 줄씩 적었습니다.