// 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.

/// Test that the type of a local function is an error if local function type
/// inference requires the type of the function being inferred.

void main() {
  f() {
    return 3;
  }

  f().arglebargle;
  //  ^^^^^^^^^^^
  // [analyzer] COMPILE_TIME_ERROR.UNDEFINED_GETTER
  // [cfe] The getter 'arglebargle' isn't defined for the class 'int'.
  f().isEven; // Inferred type is int

  g() {
    if (f() == 3) {
      return g();
    } else {
      return 3;
    }
  }
  //  ^
  // [analyzer] unspecified
  // [cfe] unspecified
}
