// 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] STATIC_TYPE_WARNING.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] undefined
  // [cfe] undefined
}
