// 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 The scope of a library function is the scope of the enclosing
 * library. The scope of a local function is described in section
 * (Statements/Local Function Declaration). In both cases, the name of the
 * function is in scope in its formal parameter scope.
 * @description Checks that two top-level functions are in the scope of each
 * other and can be mutually recursive.
 * @author rodionov
 */
import "../../../Utils/expect.dart";

int foo(int x) {
  return x >= 0 ? x : bar(-x);
}

int bar(int x) {
  return x >= 0 ? x : foo(-x);
}

main() {
  Expect.equals(1, foo(1));
  Expect.equals(1, bar(1));
  Expect.equals(1, foo(-1));
  Expect.equals(1, bar(-1));
}
