blob: f978334bc3a5362537c9f8b82b6dd3305410c6a5 [file] [log] [blame]
// Copyright (c) 2012, 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.
import "mock_compiler.dart";
import "parser_helper.dart";
import "../../../sdk/lib/_internal/compiler/implementation/ssa/ssa.dart";
import "../../../sdk/lib/_internal/compiler/implementation/types/types.dart";
const CONFLICTING = HType.CONFLICTING;
const UNKNOWN = HType.UNKNOWN;
const BOOLEAN = HType.BOOLEAN;
const NUMBER = HType.NUMBER;
const INTEGER = HType.INTEGER;
const DOUBLE = HType.DOUBLE;
const INDEXABLE_PRIMITIVE = HType.INDEXABLE_PRIMITIVE;
const STRING = HType.STRING;
const READABLE_ARRAY = HType.READABLE_ARRAY;
const MUTABLE_ARRAY = HType.MUTABLE_ARRAY;
const FIXED_ARRAY = HType.FIXED_ARRAY;
const EXTENDABLE_ARRAY = HType.EXTENDABLE_ARRAY;
const BOOLEAN_OR_NULL = HType.BOOLEAN_OR_NULL;
const NUMBER_OR_NULL = HType.NUMBER_OR_NULL;
const INTEGER_OR_NULL = HType.INTEGER_OR_NULL;
const DOUBLE_OR_NULL = HType.DOUBLE_OR_NULL;
const STRING_OR_NULL = HType.STRING_OR_NULL;
const NULL = HType.NULL;
const NON_NULL = HType.NON_NULL;
var patternClass;
HType nonPrimitive1;
HType nonPrimitive2;
HType potentialArray;
HType potentialString;
HType jsArrayOrNull;
HType jsMutableArrayOrNull;
HType jsFixedArrayOrNull;
HType jsExtendableArrayOrNull;
HType jsIndexableOrNull;
void testUnion(MockCompiler compiler) {
Expect.equals(CONFLICTING,
CONFLICTING.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
CONFLICTING.union(UNKNOWN, compiler));
Expect.equals(BOOLEAN,
CONFLICTING.union(BOOLEAN, compiler));
Expect.equals(NUMBER,
CONFLICTING.union(NUMBER, compiler));
Expect.equals(INTEGER,
CONFLICTING.union(INTEGER, compiler));
Expect.equals(DOUBLE,
CONFLICTING.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
CONFLICTING.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
CONFLICTING.union(STRING, compiler));
Expect.equals(READABLE_ARRAY,
CONFLICTING.union(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
CONFLICTING.union(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
CONFLICTING.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(nonPrimitive1,
CONFLICTING.union(nonPrimitive1, compiler));
Expect.equals(nonPrimitive2,
CONFLICTING.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,
CONFLICTING.union(potentialArray, compiler));
Expect.equals(potentialString,
CONFLICTING.union(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
CONFLICTING.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
CONFLICTING.union(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
CONFLICTING.union(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
CONFLICTING.union(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
CONFLICTING.union(STRING_OR_NULL, compiler));
Expect.equals(NULL,
CONFLICTING.union(NULL, compiler));
Expect.equals(FIXED_ARRAY,
CONFLICTING.union(FIXED_ARRAY, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(BOOLEAN, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(NUMBER, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(INTEGER, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(STRING, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(potentialString, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(STRING_OR_NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(NULL, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.union(FIXED_ARRAY, compiler));
Expect.equals(BOOLEAN,
BOOLEAN.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(UNKNOWN, compiler));
Expect.equals(BOOLEAN,
BOOLEAN.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(NUMBER, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(INTEGER, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(STRING, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN.union(STRING_OR_NULL, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN.union(NULL, compiler));
Expect.equals(NON_NULL,
BOOLEAN.union(FIXED_ARRAY, compiler));
Expect.equals(NUMBER,
NUMBER.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
NUMBER.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
NUMBER.union(BOOLEAN, compiler));
Expect.equals(NUMBER,
NUMBER.union(NUMBER, compiler));
Expect.equals(NUMBER,
NUMBER.union(INTEGER, compiler));
Expect.equals(NUMBER,
NUMBER.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
NUMBER.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
NUMBER.union(STRING, compiler));
Expect.equals(NON_NULL,
NUMBER.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
NUMBER.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
NUMBER.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
NUMBER.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
NUMBER.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
NUMBER.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
NUMBER.union(potentialString, compiler));
Expect.equals(UNKNOWN,
NUMBER.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER.union(NUMBER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER.union(INTEGER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
NUMBER.union(STRING_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER.union(NULL, compiler));
Expect.equals(NON_NULL,
NUMBER.union(FIXED_ARRAY, compiler));
Expect.equals(INTEGER,
INTEGER.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
INTEGER.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
INTEGER.union(BOOLEAN, compiler));
Expect.equals(NUMBER,
INTEGER.union(NUMBER, compiler));
Expect.equals(INTEGER,
INTEGER.union(INTEGER, compiler));
Expect.equals(NUMBER,
INTEGER.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
INTEGER.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
INTEGER.union(STRING, compiler));
Expect.equals(NON_NULL,
INTEGER.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
INTEGER.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
INTEGER.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
INTEGER.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
INTEGER.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
INTEGER.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
INTEGER.union(potentialString, compiler));
Expect.equals(UNKNOWN,
INTEGER.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER.union(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER.union(INTEGER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
INTEGER.union(STRING_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER.union(NULL, compiler));
Expect.equals(NON_NULL,
INTEGER.union(FIXED_ARRAY, compiler));
Expect.equals(DOUBLE,
DOUBLE.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
DOUBLE.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(BOOLEAN, compiler));
Expect.equals(NUMBER,
DOUBLE.union(NUMBER, compiler));
Expect.equals(NUMBER,
DOUBLE.union(INTEGER, compiler));
Expect.equals(DOUBLE,
DOUBLE.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(STRING, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
DOUBLE.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
DOUBLE.union(potentialString, compiler));
Expect.equals(UNKNOWN,
DOUBLE.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE.union(NUMBER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE.union(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
DOUBLE.union(STRING_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE.union(NULL, compiler));
Expect.equals(NON_NULL,
DOUBLE.union(FIXED_ARRAY, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(NUMBER, compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(INTEGER, compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(INDEXABLE_PRIMITIVE,
compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(STRING, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(READABLE_ARRAY, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(MUTABLE_ARRAY, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(EXTENDABLE_ARRAY,
compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
INDEXABLE_PRIMITIVE.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(potentialString, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
INDEXABLE_PRIMITIVE.union(DOUBLE_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
INDEXABLE_PRIMITIVE.union(STRING_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
INDEXABLE_PRIMITIVE.union(NULL, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.union(FIXED_ARRAY, compiler));
Expect.equals(STRING,
STRING.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
STRING.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
STRING.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
STRING.union(NUMBER, compiler));
Expect.equals(NON_NULL,
STRING.union(INTEGER, compiler));
Expect.equals(NON_NULL,
STRING.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
STRING.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
STRING.union(STRING, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
STRING.union(READABLE_ARRAY, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
STRING.union(MUTABLE_ARRAY, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
STRING.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
STRING.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
STRING.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
STRING.union(potentialArray, compiler));
Expect.equals(potentialString,
STRING.union(potentialString, compiler));
Expect.equals(UNKNOWN,
STRING.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING.union(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
STRING.union(STRING_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
STRING.union(NULL, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
STRING.union(FIXED_ARRAY, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(NUMBER, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(INTEGER, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
READABLE_ARRAY.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
READABLE_ARRAY.union(STRING, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.union(READABLE_ARRAY, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.union(MUTABLE_ARRAY, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
READABLE_ARRAY.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,
READABLE_ARRAY.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(potentialString, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
READABLE_ARRAY.union(DOUBLE_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
READABLE_ARRAY.union(STRING_OR_NULL, compiler));
Expect.equals(jsArrayOrNull,
READABLE_ARRAY.union(NULL, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.union(FIXED_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(NUMBER, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(INTEGER, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
MUTABLE_ARRAY.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
MUTABLE_ARRAY.union(STRING, compiler));
Expect.equals(READABLE_ARRAY,
MUTABLE_ARRAY.union(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.union(MUTABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
MUTABLE_ARRAY.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,MUTABLE_ARRAY.union(potentialArray,
compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(potentialString, compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
MUTABLE_ARRAY.union(DOUBLE_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
MUTABLE_ARRAY.union(STRING_OR_NULL, compiler));
Expect.equals(jsMutableArrayOrNull,
MUTABLE_ARRAY.union(NULL, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.union(FIXED_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(NUMBER, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(INTEGER, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
EXTENDABLE_ARRAY.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
EXTENDABLE_ARRAY.union(STRING, compiler));
Expect.equals(READABLE_ARRAY,
EXTENDABLE_ARRAY.union(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
EXTENDABLE_ARRAY.union(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
EXTENDABLE_ARRAY.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,
EXTENDABLE_ARRAY.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(potentialString, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
EXTENDABLE_ARRAY.union(DOUBLE_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
EXTENDABLE_ARRAY.union(STRING_OR_NULL, compiler));
Expect.equals(jsExtendableArrayOrNull,
EXTENDABLE_ARRAY.union(NULL, compiler));
Expect.equals(MUTABLE_ARRAY,
EXTENDABLE_ARRAY.union(FIXED_ARRAY, compiler));
Expect.equals(nonPrimitive1,
nonPrimitive1.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(NUMBER, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(INTEGER, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(STRING, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(nonPrimitive1,
nonPrimitive1.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
nonPrimitive1.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(potentialString, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive1.union(STRING_OR_NULL, compiler));
Expect.isTrue(nonPrimitive1.union(NULL, compiler) is HBoundedType);
Expect.equals(NON_NULL,
nonPrimitive1.union(FIXED_ARRAY, compiler));
Expect.equals(nonPrimitive2,
nonPrimitive2.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(NUMBER, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(INTEGER, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(DOUBLE, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(STRING, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(READABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(MUTABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
nonPrimitive2.union(nonPrimitive1, compiler));
Expect.equals(nonPrimitive2,
nonPrimitive2.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(potentialString, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
nonPrimitive2.union(STRING_OR_NULL, compiler));
Expect.isTrue(nonPrimitive2.union(NULL, compiler) is HBoundedType);
Expect.equals(NON_NULL,
nonPrimitive2.union(FIXED_ARRAY, compiler));
Expect.equals(potentialArray,
potentialArray.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(BOOLEAN, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(NUMBER, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(INTEGER, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(STRING, compiler));
Expect.equals(potentialArray,
potentialArray.union(READABLE_ARRAY, compiler));
Expect.equals(potentialArray,
potentialArray.union(MUTABLE_ARRAY, compiler));
Expect.equals(potentialArray,
potentialArray.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,
potentialArray.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(potentialString, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialArray.union(STRING_OR_NULL, compiler));
Expect.equals(potentialArray,
potentialArray.union(NULL, compiler));
Expect.equals(potentialArray,
potentialArray.union(FIXED_ARRAY, compiler));
Expect.equals(potentialString,
potentialString.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
potentialString.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
potentialString.union(BOOLEAN, compiler));
Expect.equals(UNKNOWN,
potentialString.union(NUMBER, compiler));
Expect.equals(UNKNOWN,
potentialString.union(INTEGER, compiler));
Expect.equals(UNKNOWN,
potentialString.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
potentialString.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(potentialString,
potentialString.union(STRING, compiler));
Expect.equals(UNKNOWN,
potentialString.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
potentialString.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
potentialString.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
potentialString.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
potentialString.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
potentialString.union(potentialArray, compiler));
Expect.equals(potentialString,
potentialString.union(potentialString, compiler));
Expect.equals(UNKNOWN,
potentialString.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialString.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialString.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
potentialString.union(DOUBLE_OR_NULL, compiler));
Expect.equals(potentialString,
potentialString.union(STRING_OR_NULL, compiler));
Expect.equals(potentialString,
potentialString.union(NULL, compiler));
Expect.equals(UNKNOWN,
potentialString.union(FIXED_ARRAY, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(UNKNOWN, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.union(BOOLEAN, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(NUMBER, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(INTEGER, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(STRING, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(STRING_OR_NULL, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.union(NULL, compiler));
Expect.equals(UNKNOWN,
BOOLEAN_OR_NULL.union(FIXED_ARRAY, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(BOOLEAN, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(NUMBER, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(INTEGER, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(STRING, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(potentialString, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(STRING_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.union(NULL, compiler));
Expect.equals(UNKNOWN,
NUMBER_OR_NULL.union(FIXED_ARRAY, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(BOOLEAN, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER_OR_NULL.union(NUMBER, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.union(INTEGER, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER_OR_NULL.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(STRING, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(potentialString, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER_OR_NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
INTEGER_OR_NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(STRING_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.union(NULL, compiler));
Expect.equals(UNKNOWN,
INTEGER_OR_NULL.union(FIXED_ARRAY, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(BOOLEAN, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE_OR_NULL.union(NUMBER, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE_OR_NULL.union(INTEGER, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.union(DOUBLE, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(STRING, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(READABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(potentialString, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE_OR_NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
DOUBLE_OR_NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(STRING_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.union(NULL, compiler));
Expect.equals(UNKNOWN,
DOUBLE_OR_NULL.union(FIXED_ARRAY, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(UNKNOWN, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(BOOLEAN, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(NUMBER, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(INTEGER, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(DOUBLE, compiler));
Expect.equals(jsIndexableOrNull,
STRING_OR_NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.union(STRING, compiler));
Expect.equals(jsIndexableOrNull,
STRING_OR_NULL.union(READABLE_ARRAY, compiler));
Expect.equals(jsIndexableOrNull,
STRING_OR_NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(jsIndexableOrNull,
STRING_OR_NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(nonPrimitive1, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(nonPrimitive2, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(potentialArray, compiler));
Expect.equals(potentialString,
STRING_OR_NULL.union(potentialString, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
STRING_OR_NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.union(STRING_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.union(NULL, compiler));
Expect.equals(jsIndexableOrNull,
STRING_OR_NULL.union(FIXED_ARRAY, compiler));
Expect.equals(NULL,
NULL.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
NULL.union(UNKNOWN, compiler));
Expect.equals(BOOLEAN_OR_NULL,
NULL.union(BOOLEAN, compiler));
Expect.equals(NUMBER_OR_NULL,
NULL.union(NUMBER, compiler));
Expect.equals(INTEGER_OR_NULL,
NULL.union(INTEGER, compiler));
Expect.equals(DOUBLE_OR_NULL,
NULL.union(DOUBLE, compiler));
Expect.equals(jsIndexableOrNull,
NULL.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING_OR_NULL,
NULL.union(STRING, compiler));
Expect.equals(jsArrayOrNull,
NULL.union(READABLE_ARRAY, compiler));
Expect.equals(jsMutableArrayOrNull,
NULL.union(MUTABLE_ARRAY, compiler));
Expect.equals(jsExtendableArrayOrNull,
NULL.union(EXTENDABLE_ARRAY, compiler));
Expect.isTrue(NULL.union(nonPrimitive1, compiler).canBeNull());
Expect.isTrue(NULL.union(nonPrimitive2, compiler).canBeNull());
Expect.equals(potentialArray,
NULL.union(potentialArray, compiler));
Expect.equals(potentialString,
NULL.union(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
NULL.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NULL.union(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
NULL.union(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
NULL.union(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
NULL.union(STRING_OR_NULL, compiler));
Expect.equals(NULL,
NULL.union(NULL, compiler));
Expect.equals(jsFixedArrayOrNull,
NULL.union(FIXED_ARRAY, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.union(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(UNKNOWN, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(BOOLEAN, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(NUMBER, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(INTEGER, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
FIXED_ARRAY.union(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
FIXED_ARRAY.union(STRING, compiler));
Expect.equals(READABLE_ARRAY,
FIXED_ARRAY.union(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
FIXED_ARRAY.union(MUTABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
FIXED_ARRAY.union(EXTENDABLE_ARRAY, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(nonPrimitive1, compiler));
Expect.equals(NON_NULL,
FIXED_ARRAY.union(nonPrimitive2, compiler));
Expect.equals(potentialArray,
FIXED_ARRAY.union(potentialArray, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(potentialString, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(BOOLEAN_OR_NULL, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(NUMBER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(INTEGER_OR_NULL, compiler));
Expect.equals(UNKNOWN,
FIXED_ARRAY.union(DOUBLE_OR_NULL, compiler));
Expect.equals(jsIndexableOrNull,
FIXED_ARRAY.union(STRING_OR_NULL, compiler));
Expect.equals(jsFixedArrayOrNull,
FIXED_ARRAY.union(NULL, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.union(FIXED_ARRAY, compiler));
}
void testIntersection(MockCompiler compiler) {
Expect.equals(CONFLICTING,
CONFLICTING.intersection(CONFLICTING, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
CONFLICTING.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
UNKNOWN.intersection(CONFLICTING, compiler));
Expect.equals(UNKNOWN,
UNKNOWN.intersection(UNKNOWN, compiler));
Expect.equals(BOOLEAN,
UNKNOWN.intersection(BOOLEAN, compiler));
Expect.equals(NUMBER,
UNKNOWN.intersection(NUMBER, compiler));
Expect.equals(INTEGER,
UNKNOWN.intersection(INTEGER, compiler));
Expect.equals(DOUBLE,
UNKNOWN.intersection(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
UNKNOWN.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
UNKNOWN.intersection(STRING, compiler));
Expect.equals(READABLE_ARRAY,
UNKNOWN.intersection(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
UNKNOWN.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
UNKNOWN.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(nonPrimitive1,
UNKNOWN.intersection(nonPrimitive1, compiler));
Expect.equals(nonPrimitive2,
UNKNOWN.intersection(nonPrimitive2, compiler));
Expect.equals(potentialArray,
UNKNOWN.intersection(potentialArray, compiler));
Expect.equals(potentialString,
UNKNOWN.intersection(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
UNKNOWN.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
UNKNOWN.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
UNKNOWN.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
UNKNOWN.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
UNKNOWN.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
UNKNOWN.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
UNKNOWN.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(CONFLICTING, compiler));
Expect.equals(BOOLEAN,
BOOLEAN.intersection(UNKNOWN, compiler));
Expect.equals(BOOLEAN,
BOOLEAN.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(potentialString, compiler));
Expect.equals(BOOLEAN,
BOOLEAN.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(CONFLICTING, compiler));
Expect.equals(NUMBER,
NUMBER.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(BOOLEAN, compiler));
Expect.equals(NUMBER,
NUMBER.intersection(NUMBER, compiler));
Expect.equals(INTEGER,
NUMBER.intersection(INTEGER, compiler));
Expect.equals(DOUBLE,
NUMBER.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER,
NUMBER.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER,
NUMBER.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE,
NUMBER.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
NUMBER.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(CONFLICTING, compiler));
Expect.equals(INTEGER,
INTEGER.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(BOOLEAN, compiler));
Expect.equals(INTEGER,
INTEGER.intersection(NUMBER, compiler));
Expect.equals(INTEGER,
INTEGER.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(INTEGER,
INTEGER.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER,
INTEGER.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
INTEGER.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(CONFLICTING, compiler));
Expect.equals(DOUBLE,
DOUBLE.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(BOOLEAN, compiler));
Expect.equals(DOUBLE,
DOUBLE.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(INTEGER, compiler));
Expect.equals(DOUBLE,
DOUBLE.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(DOUBLE,
DOUBLE.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE,
DOUBLE.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
DOUBLE.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(CONFLICTING, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(DOUBLE, compiler));
Expect.equals(INDEXABLE_PRIMITIVE,
INDEXABLE_PRIMITIVE.intersection(INDEXABLE_PRIMITIVE,
compiler));
Expect.equals(STRING,
INDEXABLE_PRIMITIVE.intersection(STRING, compiler));
Expect.equals(READABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(READABLE_ARRAY,
compiler));
Expect.equals(MUTABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(MUTABLE_ARRAY,
compiler));
Expect.equals(EXTENDABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(EXTENDABLE_ARRAY,
compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(nonPrimitive2, compiler));
Expect.equals(READABLE_ARRAY,
INDEXABLE_PRIMITIVE.intersection(potentialArray,
compiler));
Expect.equals(STRING,
INDEXABLE_PRIMITIVE.intersection(potentialString,
compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING,
INDEXABLE_PRIMITIVE.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
INDEXABLE_PRIMITIVE.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
INDEXABLE_PRIMITIVE.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(CONFLICTING, compiler));
Expect.equals(STRING,
STRING.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(DOUBLE, compiler));
Expect.equals(STRING,
STRING.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
STRING.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(potentialArray, compiler));
Expect.equals(STRING,
STRING.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING,
STRING.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
STRING.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(CONFLICTING, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(DOUBLE, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(STRING, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.intersection(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
READABLE_ARRAY.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
READABLE_ARRAY.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(nonPrimitive2, compiler));
Expect.equals(READABLE_ARRAY,
READABLE_ARRAY.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
READABLE_ARRAY.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
READABLE_ARRAY.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(CONFLICTING, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(DOUBLE, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(STRING, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.intersection(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
MUTABLE_ARRAY.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(nonPrimitive2, compiler));
Expect.equals(MUTABLE_ARRAY,
MUTABLE_ARRAY.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
MUTABLE_ARRAY.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
MUTABLE_ARRAY.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(CONFLICTING, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(DOUBLE, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(INDEXABLE_PRIMITIVE,
compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(STRING, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(READABLE_ARRAY,
compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(EXTENDABLE_ARRAY,
compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(nonPrimitive2, compiler));
Expect.equals(EXTENDABLE_ARRAY,
EXTENDABLE_ARRAY.intersection(potentialArray,
compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
EXTENDABLE_ARRAY.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(CONFLICTING, compiler));
Expect.equals(nonPrimitive1,
nonPrimitive1.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(nonPrimitive1,
nonPrimitive1.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive1.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(CONFLICTING, compiler));
Expect.equals(nonPrimitive2,
nonPrimitive2.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(nonPrimitive1, compiler));
Expect.equals(nonPrimitive2,
nonPrimitive2.intersection(nonPrimitive2, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
nonPrimitive2.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(CONFLICTING, compiler));
Expect.equals(potentialArray,
potentialArray.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(DOUBLE, compiler));
Expect.equals(READABLE_ARRAY,
potentialArray.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(STRING, compiler));
Expect.equals(READABLE_ARRAY,
potentialArray.intersection(READABLE_ARRAY, compiler));
Expect.equals(MUTABLE_ARRAY,
potentialArray.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(EXTENDABLE_ARRAY,
potentialArray.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
potentialArray.intersection(nonPrimitive2, compiler));
Expect.equals(potentialArray,
potentialArray.intersection(potentialArray, compiler));
Expect.equals(NULL,
potentialArray.intersection(potentialString, compiler));
Expect.equals(NULL,
potentialArray.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NULL,
potentialArray.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
potentialArray.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
potentialArray.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
potentialArray.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
potentialArray.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
potentialArray.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(CONFLICTING, compiler));
Expect.equals(potentialString,
potentialString.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(DOUBLE, compiler));
Expect.equals(STRING,
potentialString.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
potentialString.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
potentialString.intersection(potentialArray, compiler));
Expect.equals(potentialString,
potentialString.intersection(potentialString, compiler));
Expect.equals(NULL,
potentialString.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NULL,
potentialString.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
potentialString.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
potentialString.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
potentialString.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
potentialString.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
potentialString.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(CONFLICTING, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.intersection(UNKNOWN, compiler));
Expect.equals(BOOLEAN,
BOOLEAN_OR_NULL.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(potentialArray, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(potentialString, compiler));
Expect.equals(BOOLEAN_OR_NULL,
BOOLEAN_OR_NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
BOOLEAN_OR_NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
BOOLEAN_OR_NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(CONFLICTING, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(BOOLEAN, compiler));
Expect.equals(NUMBER,
NUMBER_OR_NULL.intersection(NUMBER, compiler));
Expect.equals(INTEGER,
NUMBER_OR_NULL.intersection(INTEGER, compiler));
Expect.equals(DOUBLE,
NUMBER_OR_NULL.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
NUMBER_OR_NULL.intersection(potentialArray, compiler));
Expect.equals(NULL,
NUMBER_OR_NULL.intersection(potentialString, compiler));
Expect.equals(NULL,
NUMBER_OR_NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NUMBER_OR_NULL,
NUMBER_OR_NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
NUMBER_OR_NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
NUMBER_OR_NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
NUMBER_OR_NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
NUMBER_OR_NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
NUMBER_OR_NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(CONFLICTING, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(BOOLEAN, compiler));
Expect.equals(INTEGER,
INTEGER_OR_NULL.intersection(NUMBER, compiler));
Expect.equals(INTEGER,
INTEGER_OR_NULL.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(potentialArray, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(potentialString, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(INTEGER_OR_NULL,
INTEGER_OR_NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
INTEGER_OR_NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
INTEGER_OR_NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(CONFLICTING, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(BOOLEAN, compiler));
Expect.equals(DOUBLE,
DOUBLE_OR_NULL.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(INTEGER, compiler));
Expect.equals(DOUBLE,
DOUBLE_OR_NULL.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(potentialArray, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(potentialString, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(DOUBLE_OR_NULL,
DOUBLE_OR_NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
DOUBLE_OR_NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
DOUBLE_OR_NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(CONFLICTING, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(DOUBLE, compiler));
Expect.equals(STRING,
STRING_OR_NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(STRING,
STRING_OR_NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(potentialArray, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.intersection(potentialString, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(STRING_OR_NULL,
STRING_OR_NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
STRING_OR_NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
STRING_OR_NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(CONFLICTING, compiler));
Expect.equals(NULL,
NULL.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(DOUBLE, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(STRING, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(READABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(nonPrimitive2, compiler));
Expect.equals(NULL,
NULL.intersection(potentialArray, compiler));
Expect.equals(NULL,
NULL.intersection(potentialString, compiler));
Expect.equals(NULL,
NULL.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(NULL,
NULL.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(NULL,
NULL.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(NULL,
NULL.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(NULL,
NULL.intersection(STRING_OR_NULL, compiler));
Expect.equals(NULL,
NULL.intersection(NULL, compiler));
Expect.equals(CONFLICTING,
NULL.intersection(FIXED_ARRAY, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(CONFLICTING, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(UNKNOWN, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(BOOLEAN, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(NUMBER, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(INTEGER, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(DOUBLE, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(INDEXABLE_PRIMITIVE, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(STRING, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(READABLE_ARRAY, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(MUTABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(EXTENDABLE_ARRAY, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(nonPrimitive1, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(nonPrimitive2, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(potentialArray, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(potentialString, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(BOOLEAN_OR_NULL, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(NUMBER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(INTEGER_OR_NULL, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(DOUBLE_OR_NULL, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(STRING_OR_NULL, compiler));
Expect.equals(CONFLICTING,
FIXED_ARRAY.intersection(NULL, compiler));
Expect.equals(FIXED_ARRAY,
FIXED_ARRAY.intersection(FIXED_ARRAY, compiler));
}
void testRegressions(MockCompiler compiler) {
HType nonNullPotentialString = new HType.nonNullSubtype(
patternClass.computeType(compiler), compiler);
Expect.equals(
potentialString, STRING_OR_NULL.union(nonNullPotentialString, compiler));
}
void main() {
MockCompiler compiler = new MockCompiler();
compiler.interceptorsLibrary.forEachLocalMember((element) {
if (element.isClass()) {
compiler.enqueuer.resolution.registerInstantiatedClass(
element, compiler.globalDependencies);
}
});
compiler.enqueuer.resolution.registerInstantiatedClass(
compiler.mapClass, compiler.globalDependencies);
compiler.world.populate();
// Grab hold of a supertype for String so we can produce potential
// string types.
patternClass = compiler.coreLibrary.find(buildSourceString('Pattern'));
nonPrimitive1 = new HType.nonNullSubtype(
compiler.mapClass.computeType(compiler), compiler);
nonPrimitive2 = new HType.nonNullSubtype(
compiler.functionClass.computeType(compiler), compiler);
potentialArray = new HType.subtype(
compiler.listClass.computeType(compiler), compiler);
potentialString = new HType.subtype(
patternClass.computeType(compiler), compiler);
jsArrayOrNull = new HType.subclass(
compiler.backend.jsArrayClass.computeType(compiler), compiler);
jsMutableArrayOrNull = new HType.subclass(
compiler.backend.jsMutableArrayClass.computeType(compiler), compiler);
jsFixedArrayOrNull = new HType.exact(
compiler.backend.jsFixedArrayClass.computeType(compiler), compiler);
jsExtendableArrayOrNull = new HType.exact(
compiler.backend.jsExtendableArrayClass.computeType(compiler), compiler);
jsIndexableOrNull = new HType.subtype(
compiler.backend.jsIndexableClass.computeType(compiler), compiler);
testUnion(compiler);
testIntersection(compiler);
testRegressions(compiler);
}