blob: a3350eb344696f0af9547d4b7a7177572bdf162a [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 Functions include function declarations, methods, getters,
* setters, constructors and function literals.
* All functions have a signature and a body.
* functionSignature:
* metadata returnType? identifier formalParameterList
* ;
* returnType: void | type
* ;
* functionBody:
* async? '=>' expression ';' | (async | async* | sync*)? block
* ;
* block:
* '{' statements '}'
* ;
* @description Checks different variants of functions
* @author msyabro
*/
void func() {}
void f(void f()) {}
x() => f(func);
class A {
A() {}
A.x() {}
int f(int x) { throw ''; }
A? func(var x) {}
Object? obj() => null;
int? _val;
set val(int? v) => v;
int? get val => _val;
String? _s;
set s(String? str) { str = _s; _s = str; }
String? get s { Object a = new Object(); return "42"; }
}
main() {
f(g(h())) {}
int func([int? x = null, int? y = null, int? z = null]) => 3;
int foo(Object x, var y) => func(1, 2, 3);
}