// 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.md file. const Object? nullValue = null; class Class { operator ==(covariant Class other) => true; method(o) {} } test( Object o, Object nonNullableObject, Object? nullableObject, Class nonNullableClass, Class? nullableClass, dynamic dyn, Never never, Never? nullableNever, Null nullTypedValue, Function nonNullableFunction, Function? nullableFunction, int Function(int) nonNullableFunctionType, int Function(int)? nullableFunctionType, T1 nonNullableTypeVariable1, T1? nullableTypeVariable1, T2 nonNullableTypeVariable2, T2? nullableTypeVariable2) { print('EqualsNull (literal null)'); null == null; null != null; nonNullableObject == null; nonNullableObject != null; null == nonNullableObject; null != nonNullableObject; nullableObject == null; nullableObject != null; null == nullableObject; null != nullableObject; nullableClass == null; nullableClass != null; null == nullableClass; null != nullableClass; nonNullableClass == null; nonNullableClass != null; null == nonNullableClass; null != nonNullableClass; dyn == null; dyn != null; null == dyn; null != dyn; never == null; never != null; null == never; null != never; nullableNever == null; nullableNever != null; null == nullableNever; null != nullableNever; nullTypedValue == null; nullTypedValue != null; null == nullTypedValue; null != nullTypedValue; nonNullableFunction == null; nonNullableFunction != null; null == nonNullableFunction; null != nonNullableFunction; nullableFunction == null; nullableFunction != null; null == nullableFunction; null != nullableFunction; nonNullableFunctionType == null; nonNullableFunctionType != null; null == nonNullableFunctionType; null != nonNullableFunctionType; nullableFunctionType == null; nullableFunctionType != null; null == nullableFunctionType; null != nullableFunctionType; nonNullableTypeVariable1 == null; nonNullableTypeVariable1 != null; null == nonNullableTypeVariable1; null != nonNullableTypeVariable1; nullableTypeVariable1 == null; nullableTypeVariable1 != null; null == nullableTypeVariable1; null != nullableTypeVariable1; nonNullableTypeVariable2 == null; nonNullableTypeVariable2 != null; null == nonNullableTypeVariable2; null != nonNullableTypeVariable2; nullableTypeVariable2 == null; nullableTypeVariable2 != null; null == nullableTypeVariable2; null != nullableTypeVariable2; nonNullableClass.method() == null; nonNullableClass.method() != null; null == nonNullableClass.method(); null != nonNullableClass.method(); print('EqualsNull (constant null)'); nullValue == nullValue; nullValue != nullValue; nonNullableObject == nullValue; nonNullableObject != nullValue; nullValue == nonNullableObject; nullValue != nonNullableObject; nullableObject == nullValue; nullableObject != nullValue; nullValue == nullableObject; nullValue != nullableObject; nonNullableClass == nullValue; nonNullableClass != nullValue; nullValue == nonNullableClass; nullValue != nonNullableClass; nullableClass == nullValue; nullableClass != nullValue; nullValue == nullableClass; nullValue != nullableClass; dyn == nullValue; dyn != nullValue; nullValue == dyn; nullValue != dyn; never == nullValue; never != nullValue; nullValue == never; nullValue != never; nullableNever == nullValue; nullableNever != nullValue; nullValue == nullableNever; nullValue != nullableNever; nullTypedValue == nullValue; nullTypedValue != nullValue; nullValue == nullTypedValue; nullValue != nullTypedValue; nonNullableFunction == nullValue; nonNullableFunction != nullValue; nullValue == nonNullableFunction; nullValue != nonNullableFunction; nullableFunction == nullValue; nullableFunction != nullValue; nullValue == nullableFunction; nullValue != nullableFunction; nonNullableFunctionType == nullValue; nonNullableFunctionType != nullValue; nullValue == nonNullableFunctionType; nullValue != nonNullableFunctionType; nullableFunctionType == nullValue; nullableFunctionType != nullValue; nullValue == nullableFunctionType; nullValue != nullableFunctionType; nonNullableTypeVariable1 == nullValue; nonNullableTypeVariable1 != nullValue; nullValue == nonNullableTypeVariable1; nullValue != nonNullableTypeVariable1; nullableTypeVariable1 == nullValue; nullableTypeVariable1 != nullValue; nullValue == nullableTypeVariable1; nullValue != nullableTypeVariable1; nonNullableTypeVariable2 == nullValue; nonNullableTypeVariable2 != nullValue; nullValue == nonNullableTypeVariable2; nullValue != nonNullableTypeVariable2; nullableTypeVariable2 == nullValue; nullableTypeVariable2 != nullValue; nullValue == nullableTypeVariable2; nullValue != nullableTypeVariable2; nonNullableClass.method() == nullValue; nonNullableClass.method() != nullValue; nullValue == nonNullableClass.method(); nullValue != nonNullableClass.method(); print('EqualsCall'); nonNullableObject == nullTypedValue; nonNullableObject != nullTypedValue; nullTypedValue == nonNullableObject; nullTypedValue != nonNullableObject; nonNullableObject == o; nonNullableObject != o; o == nonNullableObject; o != nonNullableObject; nullableObject == nullTypedValue; nullableObject != nullTypedValue; nullTypedValue == nullableObject; nullTypedValue != nullableObject; nullableObject == o; nullableObject != o; o == nullableObject; o != nullableObject; nonNullableClass == nullTypedValue; nonNullableClass != nullTypedValue; nullTypedValue == nonNullableClass; nullTypedValue != nonNullableClass; nonNullableClass == o; nonNullableClass != o; o == nonNullableClass; o != nonNullableClass; nullableClass == nullTypedValue; nullableClass != nullTypedValue; nullTypedValue == nullableClass; nullTypedValue != nullableClass; nullableClass == o; nullableClass != o; o == nullableClass; o != nullableClass; dyn == nullTypedValue; dyn != nullTypedValue; nullTypedValue == dyn; nullTypedValue != dyn; dyn == o; dyn != o; o == dyn; o != dyn; never == nullTypedValue; never != nullTypedValue; nullTypedValue == never; nullTypedValue != never; never == o; never != o; o == never; o != never; nullableNever == nullTypedValue; nullableNever != nullTypedValue; nullTypedValue == nullableNever; nullTypedValue != nullableNever; nullableNever == o; nullableNever != o; o == nullableNever; o != nullableNever; nullTypedValue == nullTypedValue; nullTypedValue != nullTypedValue; nullTypedValue == nullTypedValue; nullTypedValue != nullTypedValue; nullTypedValue == o; nullTypedValue != o; o == nullTypedValue; o != nullTypedValue; nonNullableFunction == nullTypedValue; nonNullableFunction != nullTypedValue; nullTypedValue == nonNullableFunction; nullTypedValue != nonNullableFunction; nonNullableFunction == o; nonNullableFunction != o; o == nonNullableFunction; o != nonNullableFunction; nullableFunction == nullTypedValue; nullableFunction != nullTypedValue; nullTypedValue == nullableFunction; nullTypedValue != nullableFunction; nullableFunction == o; nullableFunction != o; o == nullableFunction; o != nullableFunction; nonNullableFunctionType == nullTypedValue; nonNullableFunctionType != nullTypedValue; nullTypedValue == nonNullableFunctionType; nullTypedValue != nonNullableFunctionType; nonNullableFunctionType == o; nonNullableFunctionType != o; o == nonNullableFunctionType; o != nonNullableFunctionType; nullableFunctionType == nullTypedValue; nullableFunctionType != nullTypedValue; nullTypedValue == nullableFunctionType; nullTypedValue != nullableFunctionType; nullableFunctionType == o; nullableFunctionType != o; o == nullableFunctionType; o != nullableFunctionType; nonNullableTypeVariable1 == nullTypedValue; nonNullableTypeVariable1 != nullTypedValue; nullTypedValue == nonNullableTypeVariable1; nullTypedValue != nonNullableTypeVariable1; nonNullableTypeVariable1 == o; nonNullableTypeVariable1 != o; o == nonNullableTypeVariable1; o != nonNullableTypeVariable1; nullableTypeVariable1 == nullTypedValue; nullableTypeVariable1 != nullTypedValue; nullTypedValue == nullableTypeVariable1; nullTypedValue != nullableTypeVariable1; nullableTypeVariable1 == o; nullableTypeVariable1 != o; o == nullableTypeVariable1; o != nullableTypeVariable1; nonNullableTypeVariable2 == nullTypedValue; nonNullableTypeVariable2 != nullTypedValue; nullTypedValue == nonNullableTypeVariable2; nullTypedValue != nonNullableTypeVariable2; nonNullableTypeVariable2 == o; nonNullableTypeVariable2 != o; o == nonNullableTypeVariable2; o != nonNullableTypeVariable2; nullableTypeVariable2 == nullTypedValue; nullableTypeVariable2 != nullTypedValue; nullTypedValue == nullableTypeVariable2; nullTypedValue != nullableTypeVariable2; nullableTypeVariable2 == o; nullableTypeVariable2 != o; o == nullableTypeVariable2; o != nullableTypeVariable2; nonNullableClass.method() == nullTypedValue; nonNullableClass.method() != nullTypedValue; nullTypedValue == nonNullableClass.method(); nullTypedValue != nonNullableClass.method(); nonNullableClass.method() == o; nonNullableClass.method() != o; o == nonNullableClass.method(); o != nonNullableClass.method(); } nullEqualsIndexGet(Map map) { null == map[0]; map[0] == null; } main() {}