Files
sdk/tests/language_2/interface/interface_test.dart
T
Sam Rawlins 018dab4568 Analyzer: Report a constructor which redirects to a constructor of an abstract class
Fixes https://github.com/dart-lang/sdk/issues/37552 and
fixes https://github.com/dart-lang/sdk/issues/34370

Change-Id: I75e68157cf7e6e9824353c307a8e9f6669f8ea82
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/145571
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2020-05-02 03:53:55 +00:00

47 lines
1.0 KiB
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.
// Dart test program for testing Interfaces.
abstract class Ai {
int foo();
}
abstract class Bi implements Ai {
factory Bi() = InterfaceTest;
// ^
// [cfe] Factory redirects to class 'InterfaceTest', which is abstract and can't be instantiated.
// ^^^^^^^^^^^^^
// [analyzer] COMPILE_TIME_ERROR.REDIRECT_TO_ABSTRACT_CLASS_CONSTRUCTOR
}
abstract class Simple implements Ai {}
abstract class Aai {}
abstract class Abi {}
abstract class Bar {}
abstract class Foo implements Bar {}
abstract class Baz implements Bar, Foo {}
abstract class InterfaceTest implements Ai, Aai, Abi, Baz, Bi {
var f;
InterfaceTest() {}
int foo() {
return 1;
}
// intentionally unimplemented methods
beta(); // Abstract.
String beta1(); // Abstract.
String beta2(double d); // Abstract.
}
main() {
new Bi();
}