규칙 5.2
이 페이지에서

규칙 5.2

5장, 리터럴과 타입 결정 테스트

A written number beside a typed peer in an arithmetic operator or a builtin call must take the peer’s kind; a written number beside an f64 or an f64 vector must become an f64 literal carrying the full double.

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

근거

a literal has no type of its own until something states one, and the peer is the nearest statement.

출처

Overload Resolution; surface §13 (the min(1, i) edge).

검증 방식

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

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

retargetLit in src/compiler/ts/numeric.ts (the lift is guarded on isF64(peer) || isVec64(peer), PR #166), so x + 0.1 and min(x, 0.1) on an x: f64 both carry the pair (0.10000000149011612, -1.4901161415892261e-9); src/compiler/ts/int-lit-coerce.test.ts and int-lit-context.test.ts (the min(1, i) case); src/compiler/ts/f64-types.test.ts (lifts a literal beside an f64 and a declared f64 const) for the double.

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

설명하는 절

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

함께 보기

소스

커밋 c66579bf의 규칙 원문:

이 페이지 편집 문제 보고