disallowed_type_instantiation_expression
disallowed_type_instantiation_expression
제네릭 타입이나 제네릭 함수처럼 타입 인자를 붙일 수 있는 대상이 아닌 값 뒤에 타입 인자를 붙이면 이 진단이 나와요. 어떤 경우에 타입 인자를 쓸 수 있는지, 그리고 왜 이 진단이 뜨는지 살펴볼게요.
본문
제네릭 타입, 제네릭 함수, 제네릭 인스턴스 메서드, 또는 제네릭 생성자 외의 값을 가진 표현식 뒤에 타입 인자가 따라오면 analyzer가 이 진단을 만들어요. 타입 인자를 가질 수 있는 값의 종류는 다음과 같아요.
- 제네릭 타입
- 제네릭 생성자
- 제네릭 함수 — 최상위 함수, static·인스턴스 멤버, 지역 함수를 모두 포함해요
예시
다음 코드는 i가 최상위 변수라서 허용되는 경우가 아니기 때문에 이 진단이 나와요.
int i = 1;
void f() {
print(i<int>);
}
일반적인 해결 방법
참조하는 값이 맞다면 타입 인자를 제거해주세요.
int i = 1;
void f() {
print(i);
}