Diagnostic and cause
링크Empty comprehension needs a type
- 계열
- topaz
- 단계
- check
- 코드
TPZ5612
원인과 조건
An unannotated comprehension binding whose body type remains unresolved is rejected with TPZ5612. Giving its input array an element type makes the result inferable.
관련 규칙 · Comprehension element type needs input context →대응
Give the input collection a concrete element type. The repaired program annotates an empty input as Array<int> before using its elements in the comprehension.
Compiler phase: check.
Compiler explanation: An empty comprehension cannot infer its element, key, or value type.
Message templates. The marker ⟨value⟩ stands for text computed for the reported program.
- this comprehension's element type cannot be inferred (§6.4): annotate the binding with its collection type Source
An unannotated comprehension binding whose body type remains unresolved is rejected with TPZ5612. Giving its input array an element type makes the result inferable.
Comprehension element type needs input context
An unannotated comprehension binding whose body type remains unresolved is rejected with TPZ5612. Giving its input array an element type makes the result inferable.
Response
링크Give the input collection a concrete element type. The repaired program annotates an empty input as Array<int> before using its elements in the comprehension.
Reproduction and verification
링크Rejected program
링크let values = [for value in ([]) => value]
표준 출력 없음.기대 결과
The empty input can also trigger TPZ5020. The required TPZ5612 refers to the complete comprehension. Supplying a typed input establishes the repair independently of result-context propagation.
Repaired program
링크let input: Array<int> = []let values = [for value in (input) => value]
기대 결과
기대 결과
검사가 프로그램을 받아들입니다. 종료 코드 0.
The empty input can also trigger TPZ5020. The required TPZ5612 refers to the complete comprehension. Supplying a typed input establishes the repair independently of result-context propagation.