blob: 38254c6bd1c103f1de39af50b2af2d59f8faa779 [file] [log] [blame]
// Copyright (c) 2011, 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.
/// @assertion A script is a library whose exported namespace includes a
/// top-level function main().
///
/// libraryDefinition:
/// scriptTag? libraryName? importOrImport* partDirective* topLevelDefinition*
/// ;
/// topLevelDefinition:
/// classDefinition |
/// enumType |
/// typeAlias |
/// external? functionSignature ‘;’ |
/// external? getterSignature ‘;’ |
/// external? setterSignature ‘;’ |
/// functionSignature functionBody |
/// returnType? get identifier functionBody |
/// returnType? set identifier formalParameterList functionBody |
/// (final | const) type? staticFinalDeclarationList ‘;’ |
/// variableDeclaration ‘;’
/// ;
/// @description Checks that a script with valid top level definitions is parsed
/// without errors.
/// @author msyabro
/// @issue 42392
abstract class I {}
abstract class J<T> {}
class A {}
class B extends A {}
class C implements I {}
class D implements J<String> {}
f() {}
g(p1, p2) => p1 + p2;
A h([p1, p2]) {
return new A();
}
typedef typeF();
typedef int typeG();
typedef void typeH(p1, p2);
external int extFunc(bool);
external int get extGetter;
external void set extSetter(int x);
final x = 'x';
String y = 'y';
var z;
int? a, b;
int c = 1;
get _x {}
set _y(p) {}
main() {
new A();
new B();
new C();
new D();
f();
g(1, 2);
h('', "");
typeF funcF = () => 1;
typeG funcG = () { throw "Error"; };
typeH funcH = (p1, p2) {};
x;
y;
z;
a;
b;
c;
_x;
_y = 1;
}