blob: c2aabfc484ea04eb2cefb847c2d142dafdb12336 [file] [log] [blame]
// 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');
}