library /*isNonNullableByDefault*/;
import self as self;
import "dart:core" as core;

import "package:expect/expect.dart";

static const field core::Object? var1 = self::fn(const <core::Object, core::Object>{"key": "val"}, "key");
static const field core::Object? var2 = self::fn(const <core::Object, core::Object>{"key": 2}, "key");
static const field core::Object? var3 = self::fn(const <core::Object, core::Object>{"key": 2}, "invalid");
static const field core::Map<core::String, core::int> map = const <core::String, core::int>{"key1": 2, "key2": 3, "key3": 4};
static const field core::Object? var4 = self::fn(self::map, "key1");
static const field core::Object? var5 = self::fn(self::map, "key2");
static const field core::Object? var6 = self::fn(self::map, "key3");
static const field core::int? var7 = self::fn2();
static method fn(core::Map<core::Object, core::Object> map, core::Object key) → core::Object?
  ;
static method fn2() → core::int?
  ;
static method main() → void
  ;


Extra constant evaluation status:
Evaluated: MapLiteral @ org-dartlang-testcase:///const_functions_map.dart:9:17 -> MapConstant(const <Object*, Object*>{"key": "val"})
Evaluated: MapLiteral @ org-dartlang-testcase:///const_functions_map.dart:11:17 -> MapConstant(const <Object*, Object*>{"key": 2})
Evaluated: MapLiteral @ org-dartlang-testcase:///const_functions_map.dart:13:17 -> MapConstant(const <Object*, Object*>{"key": 2})
Evaluated: MapLiteral @ org-dartlang-testcase:///const_functions_map.dart:15:13 -> MapConstant(const <String*, int*>{"key1": 2, "key2": 3, "key3": 4})
Evaluated: StaticGet @ org-dartlang-testcase:///const_functions_map.dart:16:17 -> MapConstant(const <String*, int*>{"key1": 2, "key2": 3, "key3": 4})
Evaluated: StaticGet @ org-dartlang-testcase:///const_functions_map.dart:17:17 -> MapConstant(const <String*, int*>{"key1": 2, "key2": 3, "key3": 4})
Evaluated: StaticGet @ org-dartlang-testcase:///const_functions_map.dart:18:17 -> MapConstant(const <String*, int*>{"key1": 2, "key2": 3, "key3": 4})
Extra constant evaluation: evaluated: 14, effectively constant: 7
