mirror of
https://github.com/dart-lang/sdk
synced 2024-09-15 23:59:47 +00:00
3bc7d9562f
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: I3a41bb83767052abda1fdfc77e21bd1a83188482 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296441 Auto-Submit: Bob Nystrom <rnystrom@google.com> Reviewed-by: Jake Macdonald <jakemac@google.com> Commit-Queue: Bob Nystrom <rnystrom@google.com>
26 lines
751 B
Dart
26 lines
751 B
Dart
// Copyright (c) 2012, 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.
|
|
// Test for dart2js to handle a typed selector with a typedef as a
|
|
// receiver type.
|
|
|
|
getComparator() => (a, b) => 42;
|
|
|
|
class A {
|
|
foo() => 42;
|
|
}
|
|
|
|
main() {
|
|
Comparator a = getComparator();
|
|
if (a(1, 2) != 42) {
|
|
// This call used to crash dart2js because 'foo' was a typed
|
|
// selector with a typedef as a receiver type.
|
|
a.foo();
|
|
//^^^
|
|
// [analyzer] COMPILE_TIME_ERROR.UNDEFINED_METHOD
|
|
// [cfe] The method 'foo' isn't defined for the class 'int Function(dynamic, dynamic)'.
|
|
}
|
|
var b = new A();
|
|
b.foo();
|
|
}
|