// 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
// TODO(45942): This may be the wrong location, but until the linked issue is
// fixed and implementations report the error, this is as good as any.
}
