mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 14:53:37 +00:00
0eb13c95ac
The "@compile-error" comment is an old not-great way of defining static error tests. See: https://github.com/dart-lang/sdk/issues/45634 Change-Id: I42d3712f2f75f66e7ecae19f740de16f6025b41d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296120 Commit-Queue: Bob Nystrom <rnystrom@google.com> Reviewed-by: Leaf Petersen <leafp@google.com>
46 lines
1.9 KiB
Dart
46 lines
1.9 KiB
Dart
// Copyright (c) 2017, 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.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
void main() {
|
|
// Test object startIndex
|
|
"hello".replaceFirst("h", "X", new Object());
|
|
// ^^^^^^^^^^^^
|
|
// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
|
|
// ^
|
|
// [cfe] The argument type 'Object' can't be assigned to the parameter type 'int'.
|
|
|
|
// Test object startIndex
|
|
"hello".replaceFirstMapped("h", (_) => "X", new Object());
|
|
// ^^^^^^^^^^^^
|
|
// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
|
|
// ^
|
|
// [cfe] The argument type 'Object' can't be assigned to the parameter type 'int'.
|
|
|
|
"foo-bar".replaceFirstMapped("bar", (v) {
|
|
return 42;
|
|
// ^^
|
|
// [analyzer] COMPILE_TIME_ERROR.RETURN_OF_INVALID_TYPE_FROM_CLOSURE
|
|
// [cfe] A value of type 'int' can't be returned from a function with return type 'String'.
|
|
});
|
|
|
|
"hello".replaceRange(0, 0, 42);
|
|
// ^^
|
|
// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
|
|
// [cfe] The argument type 'int' can't be assigned to the parameter type 'String'.
|
|
"hello".replaceRange(0, 0, ["x"]);
|
|
// ^^^^^
|
|
// [analyzer] COMPILE_TIME_ERROR.ARGUMENT_TYPE_NOT_ASSIGNABLE
|
|
// [cfe] The argument type 'List<String>' can't be assigned to the parameter type 'String'.
|
|
}
|
|
|
|
// Fails to return a String on toString, throws if converted by "$naughty".
|
|
class Naughty {
|
|
toString() => this;
|
|
// ^^^^
|
|
// [analyzer] COMPILE_TIME_ERROR.RETURN_OF_INVALID_TYPE
|
|
// [cfe] A value of type 'Naughty' can't be returned from a function with return type 'String'.
|
|
}
|