// Copyright (c) 2019, 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. // @dart = 2.7 main() { var c = new Class(); c.method1a(null); c.method1b(null); c.method2a(null); c.method2b(null); c.method3a(null); c.method3b(null); c.method4a(null); c.method4b(null); c.method5a(null); c.method5b(null); c.method6a(null); c.method6b(null); } // Checks are needed both with and without --omit-implicit-checks. /*class: Class1a:explicit=[Class1a*]*/ class Class1a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class1b:*/ class Class1b {} // Checks are needed both with and without --omit-implicit-checks. /*class: Class2a:explicit=[Class2a*]*/ class Class2a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class2b:*/ class Class2b {} // Checks are needed both with and without --omit-implicit-checks. /*class: Class3a:explicit=[Class3a*]*/ class Class3a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class3b:*/ class Class3b {} // Checks are needed both with and without --omit-implicit-checks. /*class: Class4a:explicit=[Class4a*],needsArgs*/ class Class4a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class4b:*/ class Class4b {} // Checks are needed both with and without --omit-implicit-checks. /*class: Class5a:explicit=[Class5a*],needsArgs*/ class Class5a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class5b:*/ class Class5b {} // Checks are needed both with and without --omit-implicit-checks. /*class: Class6a:explicit=[Class6a*],needsArgs*/ class Class6a {} // Checks are needed neither with nor without --omit-implicit-checks. /*class: Class6b:*/ class Class6b {} class Class { @pragma('dart2js:parameter:check') method1a(Class1a c) {} @pragma('dart2js:parameter:trust') method1b(Class1b c) {} @pragma('dart2js:downcast:check') Class2a method2a(o) => o; @pragma('dart2js:downcast:trust') Class2b method2b(o) => o; @pragma('dart2js:as:check') method3a(o) => o as Class3a; @pragma('dart2js:as:trust') method3b(o) => o as Class3b; @pragma('dart2js:parameter:check') method4a(Class4a c) {} @pragma('dart2js:parameter:trust') method4b(Class4b c) {} @pragma('dart2js:downcast:check') Class5a method5a(o) => o; @pragma('dart2js:downcast:trust') Class5b method5b(o) => o; @pragma('dart2js:as:check') method6a(o) => o as Class6a; @pragma('dart2js:as:trust') method6b(o) => o as Class6b; }