label_undefined 진단: 정의되지 않은 라벨 참조

label_undefined 진단: 정의되지 않은 라벨 참조

Dart 분석기가 만들어 내는 label_undefined 진단에 대해 설명해요.

출처: label_undefined

본문

정의되지 않은 라벨 {0}은(는) 참조할 수 없어요.

설명

분석기는 그 라벨을 참조하는 break 또는 continue 문의 범위에 정의되어 있지 않은 라벨에 대한 참조를 발견할 때 이 진단을 만들어요.

예시

다음 코드는 라벨 loop이 어디에도 정의되어 있지 않기 때문에 이 진단을 만들어요.

void f() {
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break loop;
      }
    }
  }
}

흔한 해결 방법

라벨이 가장 안쪽에 감싸는 do, for, switch, 또는 while 문에 있어야 한다면, 라벨을 제거해요.

void f() {
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break;
      }
    }
  }
}

라벨이 다른 문에 있어야 한다면, 라벨을 추가해요.

void f() {
  loop:
  for (int i = 0; i < 10; i++) {
    for (int j = 0; j < 10; j++) {
      if (j != 0) {
        break loop;
      }
    }
  }
}

더 알아보기