remove method
Implementation
IVariant? remove(Iterable<IVariant> variantsToRemove) {
final remainingVariants = <IVariant>[];
for (var variant in variants) {
if (variant is MultiVariant) {
final remaining = variant.remove(variantsToRemove);
if (remaining != null) {
remainingVariants.add(remaining);
}
} else {
if (!variantsToRemove.contains(variant)) {
remainingVariants.add(variant);
}
}
}
if (remainingVariants.isEmpty) {
return null;
}
return remainingVariants.length == 1
? remainingVariants.first
: MultiVariant(remainingVariants, type: operatorType);
}