@@ -8,6 +8,7 @@ import 'package:_fe_analyzer_shared/src/messages/codes.dart'
8
8
show
9
9
Message,
10
10
LocatedMessage,
11
+ messageDartFfiLibraryInDart2Wasm,
11
12
messageJsInteropDartJsInteropAnnotationForStaticInteropOnly,
12
13
messageJsInteropEnclosingClassJSAnnotation,
13
14
messageJsInteropEnclosingClassJSAnnotationContext,
@@ -134,7 +135,8 @@ class JsInteropChecks extends RecursiveVisitor {
134
135
'package:js/js.dart' ,
135
136
'package:js/js_util.dart' ,
136
137
'dart:js_util' ,
137
- 'dart:js'
138
+ 'dart:js' ,
139
+ 'dart:ffi' ,
138
140
];
139
141
140
142
/// Libraries that use `external` to exclude from checks on external.
@@ -550,12 +552,12 @@ class JsInteropChecks extends RecursiveVisitor {
550
552
_allowedUseOfDart2WasmDisallowedInteropLibrariesTestPatterns
551
553
.any ((pattern) => uri.path.contains (pattern));
552
554
if (allowedToImport) return ;
553
- _reporter. report (
554
- templateJsInteropDisallowedInteropLibraryInDart2Wasm
555
- . withArguments (dependencyUriString),
556
- dependency.fileOffset,
557
- dependencyUriString.length ,
558
- node.fileUri);
555
+ final message = dependencyUriString == 'dart:ffi'
556
+ ? messageDartFfiLibraryInDart2Wasm
557
+ : templateJsInteropDisallowedInteropLibraryInDart2Wasm
558
+ . withArguments (dependencyUriString);
559
+ _reporter. report (message, dependency.fileOffset ,
560
+ dependencyUriString.length, node.fileUri);
559
561
}
560
562
}
561
563
}
0 commit comments