본문으로 건너뛰기
토파즈6.0 · 출시 전
다운로드 →

문서 검색

명세 6.0

방향키로 결과를 고르고 Enter를 눌러 여세요.

API 이름, 진단 번호, 규칙 또는 프로젝트 주제를 입력하세요.

    진단

    TPZ5026 · 일치하지 않을 수 있는 let 패턴

    let 패턴은 실행 중 값과 일치하지 않을 수 있습니다.

    진단과 원인

    링크

    일치하지 않을 수 있는 let 패턴

    계열
    topaz
    단계
    check
    코드
    TPZ5026

    원인과 조건

    let 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.

    대응

    if let 또는 match로 일치 여부에 따른 두 경우를 처리하거나, 항상 일치하는 패턴을 선택하세요.

    컴파일러 단계는 check입니다.

    컴파일러 설명

    let 패턴은 실행 중 값과 일치하지 않을 수 있습니다.

    메시지 서식에서 ⟨value⟩는 보고한 프로그램에 따라 계산한 텍스트를 나타냅니다.

    refutable pattern in `let`: it does not match every value of the type — use `if let` to handle the non-matching case

    let 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.

    규칙diagnostics.tpz5026.p5.rule

    일치하지 않을 수 있는 let 패턴

    let 구조 분해 패턴은 초기화 식의 타입에 속한 모든 값과 일치해야 합니다. 생성자 패턴이 일치하지 않을 수 있으면 match 또는 if let을 사용하세요.

    대응

    링크

    if let 또는 match로 일치 여부에 따른 두 경우를 처리하거나, 항상 일치하는 패턴을 선택하세요.

    재현과 검증

    링크

    거절된 프로그램

    링크
    example.tpz거절된 프로그램플레이그라운드 열기 →
    1. let maybe: Option<int> = None()
    2. let Some(value) = maybe
    기대 출력0이 아닌 종료 코드
    표준 출력 없음.
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

    거절 단계 check. 종료 코드가 0이 아닙니다.

    • TPZ5026 →

      diagnostics-refutable-let-pattern at example.tpz:2:5

    수정한 프로그램

    링크
    example.tpz수정한 프로그램
    1. let maybe: Option<int> = None()
    2. let value: int = match (maybe) {
    3. case Some(number) => number
    4. case None() => 0
    5. }
    기대 출력종료 코드 0
    $ topaz check example.tpz · 대상 제품 5.21.3
    기대 결과

    기대 결과

    검사가 프로그램을 받아들입니다. 종료 코드 0.

    메뉴

    다운로드 →