mirror of
https://github.com/dart-lang/sdk
synced 2024-09-30 09:20:41 +00:00
ed009afc4c
Bug: https://github.com/dart-lang/sdk/issues/37896 dart2js disallows JS interop classes from extending Dart classes, and ddc does not work as expected. Dart classes that extends JS interop classes can't be declared in ddc and throw an error on usage in dart2js. This CL adds static errors for both cases. Change-Id: I72001d2e8bec046c0e1ab4c06fed8fcf84ade259 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/164840 Reviewed-by: Sigmund Cherem <sigmund@google.com> Commit-Queue: Srujan Gaddam <srujzs@google.com>
39 lines
993 B
Dart
39 lines
993 B
Dart
// Copyright (c) 2020, 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.
|
|
|
|
@JS()
|
|
library extends_static_test;
|
|
|
|
import 'package:js/js.dart';
|
|
|
|
@JS()
|
|
class JSClass {}
|
|
|
|
@JS()
|
|
@anonymous
|
|
class AnonymousClass {}
|
|
|
|
class DartClass {}
|
|
|
|
class DartExtendJSClass extends JSClass {}
|
|
// ^
|
|
// [web] Dart class 'DartExtendJSClass' cannot extend JS interop class 'JSClass'.
|
|
|
|
class DartExtendAnonymousClass extends AnonymousClass {}
|
|
// ^
|
|
// [web] Dart class 'DartExtendAnonymousClass' cannot extend JS interop class 'AnonymousClass'.
|
|
|
|
@JS()
|
|
class JSExtendDartClass extends DartClass {}
|
|
// ^
|
|
// [web] JS interop class 'JSExtendDartClass' cannot extend Dart class 'DartClass'.
|
|
|
|
@JS()
|
|
@anonymous
|
|
class AnonymousExtendDartClass extends DartClass {}
|
|
// ^
|
|
// [web] JS interop class 'AnonymousExtendDartClass' cannot extend Dart class 'DartClass'.
|
|
|
|
void main() {}
|