non_positive_array_dimension 진단: 배열 크기는 양수여야 해요

non_positive_array_dimension 진단: 배열 크기는 양수여야 해요

Dart 분석기가 만들어 내는 non_positive_array_dimension 진단에 대한 설명이에요.

출처: non_positive_array_dimension

본문

Array 어노테이션에 주어진 크기(dimension)가 0보다 작거나 같을 때(0 이하일 때) 분석기가 이 진단을 만들어요.

설명

Array 어노테이션에 지정한 크기가 0 또는 음수면 이 진단이 나와요. 배열의 크기는 항상 양수여야 하거든요.

FFI에 대한 더 자세한 내용은 C interop using dart:ffi에서 확인할 수 있어요.

예시

다음 코드는 배열 크기로 -8을 지정해서 이 진단을 만들어요.

import 'dart:ffi';

final class MyStruct extends Struct {
  @Array(-8)
  external Array<Uint8> a0;
}

흔한 해결 방법

크기를 양의 정수로 바꿔요.

import 'dart:ffi';

final class MyStruct extends Struct {
  @Array(8)
  external Array<Uint8> a0;
}

가변 길이 인라인 배열이라면 어노테이션을 Array.variable()로 바꿔요.

import 'dart:ffi';

final class MyStruct extends Struct {
  @Array.variable()
  external Array<Uint8> a0;
}

더 알아보기