| // 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. | |
| // ---- 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'); | |
| } |