blob: 8a5100f49fec6bf8fd6d1fb0b2f2ea12a0938d47 [file] [log] [blame]
// 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<T> {
operator ==(covariant Class<T> other) => true;
method(o) {}
}
test<T1 extends Function, T2 extends int Function(int)>(
Object o,
Object nonNullableObject,
Object? nullableObject,
Class<String> nonNullableClass,
Class<String>? 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<int, String> map) {
null == map[0];
map[0] == null;
}
main() {}