| // Copyright (c) 2023, 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. |
| |
| class DOMWindow {} |
| |
| class Window extends DOMWindow native "*Window" {} |
| // ^^^^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| |
| class Console native "=(typeof console == 'undefined' ? {} : console)" {} |
| // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| |
| class NativeClass native "FooBar" {} |
| // ^^^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| |
| abstract class Fisk {} |
| |
| class BoolImplementation implements Fisk native "Boolean" {} |
| // ^^^^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| |
| class _JSON native 'JSON' {} |
| // ^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| |
| class ListFactory<E> implements List<E> native "Array" { |
| // ^^^^^^^^^^^^^^ |
| // [analyzer] SYNTACTIC_ERROR.NATIVE_CLAUSE_IN_NON_SDK_CODE |
| // [cfe] expect cfe to report an error here |
| noSuchMethod(_) => null; // Allow unimplemented methods |
| } |
| |
| main() { |
| try { |
| new Window(); |
| new Console(); |
| new NativeClass(); |
| new BoolImplementation(); |
| new _JSON(); |
| new ListFactory(); |
| new ListFactory<Object>(); |
| } catch (ex) { |
| // Swallowing exceptions. Any error should be a compile-time error |
| // which kills the current isolate. |
| } |
| throw 'This test should fail to compile, not throw a run-time error.'; |
| } |