#993. Wrong annotation tests added
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t01.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t01.dart
new file mode 100644
index 0000000..5e71e4a
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t01.dart
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if double field is annotated
+ * as IntX
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @Int8()
+//^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @Int16()
+//^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S3 extends Struct {
+  @Int32()
+//^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S4 extends Struct {
+  @Int64()
+//^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+  S3? s3;
+  S4? s4;
+}
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t02.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t02.dart
new file mode 100644
index 0000000..0ae992d
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t02.dart
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if double field is annotated
+ * as UIntX
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @Uint8()
+//^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @Uint16()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S3 extends Struct {
+  @Uint32()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S4 extends Struct {
+  @Uint64()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+  S3? s3;
+  S4? s4;
+}
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t03.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t03.dart
new file mode 100644
index 0000000..1041fe3
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t03.dart
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if int field is annotated
+ * as Float or Double
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @Double()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external int x;
+//             ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @Float()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external int x;
+//             ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+}
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t04.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t04.dart
new file mode 100644
index 0000000..e7c3d25
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t04.dart
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if field is annotated
+ * as Void
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @Void()
+//^^^^^^^
+// [analyzer] unspecified
+  external int x;
+//             ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @Void()
+//^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+}
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t05.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t05.dart
new file mode 100644
index 0000000..7b51a96
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t05.dart
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if double field is annotated
+ * as IntPtr
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @IntPtr()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @IntPtr()
+//^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+}
diff --git a/LibTest/ffi/Struct/wrong_annotation_A01_t06.dart b/LibTest/ffi/Struct/wrong_annotation_A01_t06.dart
new file mode 100644
index 0000000..fe7efb1
--- /dev/null
+++ b/LibTest/ffi/Struct/wrong_annotation_A01_t06.dart
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2021, the Dart project authors.  Please see the AUTHORS file
+ * for details. All rights reserved. Use of this source code is governed by a
+ * BSD-style license that can be found in the LICENSE file.
+ */
+/**
+ * @assertion All field declarations in a Struct subclass declaration must
+ * either have type int or float and be annotated with a NativeType representing
+ * the native type, or must be of type Pointer.
+ *
+ * @description Checks that it is a compile error if double field is annotated
+ * as NativeType
+ * @author sgrekhov@unipro.ru
+ */
+import "dart:ffi";
+
+class S1 extends Struct {
+  @NativeType()
+//^^^^^^^^^^^^^
+// [analyzer] unspecified
+  external double x;
+//                ^
+// [cfe] unspecified
+}
+
+class S2 extends Struct {
+  @NativeType()
+//^^^^^^^^^^^^^
+// [analyzer] unspecified
+  external int x;
+//             ^
+// [cfe] unspecified
+}
+
+void main() {
+  S1? s1;
+  S2? s2;
+}