Fixes #1237. More tests for Array and Pointer with wrong types
diff --git a/LibTest/ffi/Array/Array.multi_A03_t02.dart b/LibTest/ffi/Array/Array.multi_A03_t02.dart
index db369f5..eade4de 100644
--- a/LibTest/ffi/Array/Array.multi_A03_t02.dart
+++ b/LibTest/ffi/Array/Array.multi_A03_t02.dart
@@ -45,6 +45,18 @@
 //               ^^^^
 // [analyzer] unspecified
 // [cfe] unspecified
+
+  @Array.multi([16])
+  external Array<Object?> a5;
+//               ^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  @Array.multy([16])
+  external Array<Never> a6;
+//               ^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
 }
 
 main() {
diff --git a/LibTest/ffi/Array/Array_A03_t02.dart b/LibTest/ffi/Array/Array_A03_t02.dart
index f39ddc7..e6c6d83 100644
--- a/LibTest/ffi/Array/Array_A03_t02.dart
+++ b/LibTest/ffi/Array/Array_A03_t02.dart
@@ -51,6 +51,18 @@
 //               ^^^^
 // [analyzer] unspecified
 // [cfe] unspecified
+
+  @Array(16)
+  external Array<Object?> a5;
+//               ^^^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
+
+  @Array(16)
+  external Array<Never> a6;
+//               ^^^^^
+// [analyzer] unspecified
+// [cfe] unspecified
 }
 
 main() {
diff --git a/LibTest/ffi/Pointer/Pointer_A02_t01.dart b/LibTest/ffi/Pointer/Pointer_A02_t01.dart
new file mode 100644
index 0000000..73d97eb
--- /dev/null
+++ b/LibTest/ffi/Pointer/Pointer_A02_t01.dart
@@ -0,0 +1,19 @@
+// 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 Pointer<T extends NativeType>
+///  Represents a pointer into the native C memory. Cannot be extended.
+///
+/// @description Checks that it is a compile time error if pointer class is
+/// wrong
+/// @author sgrekhov@unipro.ru
+
+import "dart:ffi";
+
+void main() {
+  Pointer<NotExistingClass> p = Pointer.fromAddress(0);
+//        ^^^^^^^^^^^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+}
diff --git a/LibTest/ffi/Pointer/Pointer_A02_t02.dart b/LibTest/ffi/Pointer/Pointer_A02_t02.dart
new file mode 100644
index 0000000..d8b8ef3
--- /dev/null
+++ b/LibTest/ffi/Pointer/Pointer_A02_t02.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 Pointer<T extends NativeType>
+///  Represents a pointer into the native C memory. Cannot be extended.
+///
+/// @description Checks that it is a compile time error if pointer class is
+/// not subtype of NativeType
+/// @author sgrekhov@unipro.ru
+
+import "dart:ffi";
+
+import 'package:ffi/ffi.dart';
+
+void main() {
+  Pointer<Int16> p = calloc<Int16>();
+  Pointer<int> p1 = Pointer.fromAddress(p.address);
+//        ^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<double> p2 = Pointer.fromAddress(p.address);
+//        ^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<String> p3 = Pointer.fromAddress(p.address);
+//        ^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<Object> p4 = Pointer.fromAddress(p.address);
+//        ^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+}
diff --git a/LibTest/ffi/Pointer/Pointer_A02_t03.dart b/LibTest/ffi/Pointer/Pointer_A02_t03.dart
new file mode 100644
index 0000000..5dba02d
--- /dev/null
+++ b/LibTest/ffi/Pointer/Pointer_A02_t03.dart
@@ -0,0 +1,42 @@
+// 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 Pointer<T extends NativeType>
+///  Represents a pointer into the native C memory. Cannot be extended.
+///
+/// @description Checks that it is a compile time error if pointer class is a
+/// top type
+/// @author sgrekhov@unipro.ru
+/// @issue 47746
+
+import "dart:ffi";
+import 'package:ffi/ffi.dart';
+
+void main() {
+  Pointer<Int16> p = calloc<Int16>();
+  Pointer<dynamic> p1 = Pointer.fromAddress(p.address);
+//        ^^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<void> p2 = Pointer.fromAddress(p.address);
+//        ^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<Null> p3 = Pointer.fromAddress(p.address);
+//        ^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<Object?> p4 = Pointer.fromAddress(p.address);
+//        ^^^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+
+  Pointer<Never> p5 = Pointer.fromAddress(p.address);
+//        ^^^^^
+// [cfe] unspecified
+// [analyzer] unspecified
+}