// 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. // @dart = 2.10 // ---- String.substring /*member: substring1:Specializer=[substring]*/ @pragma('dart2js:noInline') substring1(String param) { return param.substring(1); } /*member: substring2:Specializer=[substring]*/ @pragma('dart2js:noInline') substring2(String param) { return param.substring(1, 3); } /*member: substring3:Specializer=[substring]*/ @pragma('dart2js:noInline') substring3(String param) { dynamic s = param; return s.substring(1, 2); // Not confused by static type. } /*member: substring4:*/ @pragma('dart2js:noInline') substring4(String param) { dynamic s = param; return s.substring(1, 2, 3); // Arity mismatch. } /*member: substring5:*/ @pragma('dart2js:noInline') substring5(String param) { dynamic s = [param]; return s.substring(1); // Receiver mismatch. } // ---- String.trim /*member: trim1:Specializer=[trim]*/ @pragma('dart2js:noInline') trim1(String param) { return param.trim(); } // ---- String.indexOf /*member: indexOf1:Specializer=[indexOf]*/ @pragma('dart2js:noInline') indexOf1(String param) { return param.indexOf('e'); } /*member: indexOf2:Specializer=[indexOf]*/ @pragma('dart2js:noInline') indexOf2(String param) { return param.indexOf('e', 3); } // Specializer does not match as the pattern is not a string. /*member: indexOf3:*/ @pragma('dart2js:noInline') indexOf3(String param) { return param.indexOf(RegExp('e')); } // ---- String.contains /*member: contains1:Specializer=[contains]*/ @pragma('dart2js:noInline') contains1(String param) { return param.contains('e'); } /*member: contains2:Specializer=[contains]*/ @pragma('dart2js:noInline') contains2(String param) { return param.contains('e', 3); } // Specializer does not match as the pattern is not a string. /*member: contains3:*/ @pragma('dart2js:noInline') contains3(String param) { return param.contains(RegExp('e')); } // ---- String.startsWith /*member: startsWith1:Specializer=[startsWith]*/ @pragma('dart2js:noInline') startsWith1(String param) { return param.startsWith('e'); } /*member: startsWith2:Specializer=[startsWith]*/ @pragma('dart2js:noInline') startsWith2(String param) { return param.startsWith('e', 3); } // Specializer does not match as the pattern is not a string. /*member: startsWith3:*/ @pragma('dart2js:noInline') startsWith3(String param) { return param.startsWith(RegExp('e')); } // ---- String.endsWith /*member: endsWith1:Specializer=[endsWith]*/ @pragma('dart2js:noInline') endsWith1(String param) { return param.endsWith('e'); } main() { substring1('hello'); substring1('bye'); substring1(''); substring2('hello'); substring2('bye'); substring2(''); substring3('hello'); substring3('bye'); substring3(''); substring4('hello'); substring4('bye'); substring4(''); substring5('hello'); substring5('bye'); substring5(''); trim1('hello'); trim1(' bye '); trim1(' '); indexOf1('hello'); indexOf1('bye'); indexOf2('hello'); indexOf2('bye'); indexOf3('hello'); indexOf3('bye'); contains1('hello'); contains1('bye'); contains2('hello'); contains2('bye'); contains3('hello'); contains3('bye'); startsWith1('hello'); startsWith1('bye'); startsWith2('hello'); startsWith2('bye'); startsWith3('hello'); startsWith3('bye'); endsWith1('hello'); endsWith1('bye'); }