variable_length_array_not_last 진단: 가변 길이 인라인 배열은 Struct의 마지막에 두세요
variable_length_array_not_last 진단: 가변 길이 인라인 배열은 Struct의 마지막에 두세요
variable_length_array_not_last은 가변 길이 인라인 Array가 Struct의 마지막 멤버가 아닐 때 Dart 분석기가 내보내는 진단이에요. Struct의 가변 길이 배열은 반드시 마지막 필드여야 해요.
본문
설명
분석기는 가변 길이 인라인 Array가 Struct의 마지막 멤버가 아닐 때 이 진단을 만들어요.
FFI에 대한 자세한 내용은 C interop using dart:ffi를 참고하세요.
예시
다음 코드는 Struct에서 가변 길이 배열 a0 뒤에 또 다른 필드 a1이 이어지기 때문에 이 진단을 만들어요.
import 'dart:ffi';
final class C extends Struct {
@Array.variable()
external Array a0;
@Uint8()
external int a1;
}
흔한 해결 방법
가변 길이 인라인 Array를 struct의 마지막 필드로 옮겨요.
import 'dart:ffi';
final class C extends Struct {
@Uint8()
external int a1;
@Array.variable()
external Array a0;
}
만약 인라인 배열이 고정 크기라면 크기를 명시해요.
import 'dart:ffi';
final class C extends Struct {
@Array(10)
external Array a0;
@Uint8()
external int a1;
}