size_annotation_dimensions 진단: Array 애너테이션과 차원 일치

size_annotation_dimensions 진단: Array 애너테이션과 차원 일치

Array는 차원(dimensions)과 일치하는 'Array' 애너테이션을 가져야 해요.

출처: size_annotation_dimensions

본문

설명

분석기는 Array 애너테이션에 지정된 차원의 수가 필드(field)의 타입에 지정된 중첩 배열의 수와 일치하지 않을 때 이 진단을 만들어요.

FFI에 대한 자세한 내용은 C interop using dart:ffi를 확인하세요.

예시

다음 코드는 필드 a0의 타입에 중첩 배열이 세 개 있지만 Array 애너테이션에는 차원이 두 개만 주어졌기 때문에 이 진단을 만들게 돼요.

import 'dart:ffi';

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

흔한 해결 방법

필드의 타입이 맞다면, 필요한 차원 수를 갖도록 애너테이션을 고쳐요.

import 'dart:ffi';

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

필드의 타입이 잘못됐다면, 필드의 타입을 고쳐요.

import 'dart:ffi';

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

더 알아보기