IsNullValue resultValue = instanceByFlagsList[combinedFlags >> FLAG_SHIFT][result];
	public static IsNullValue merge(IsNullValue a, IsNullValue b) {		if (a == b) return a;		int aFlags = a.getFlags();		int bFlags = b.getFlags();				int combinedFlags =  aFlags & bFlags;				if (!(a.isNullOnSomePath() || a.isDefinitelyNull()) && b.isException())				combinedFlags |= EXCEPTION;		else			if (!(b.isNullOnSomePath() || b.isDefinitelyNull()) && a.isException())				combinedFlags |= EXCEPTION;		a = a.toBaseValue();		b = b.toBaseValue();						// Left hand value should be >=, since it is used		// as the first dimension of the matrix to index.		if (a.kind < b.kind) {			IsNullValue tmp = a;			a = b;			b = tmp;			int tmpFlags = aFlags;			aFlags = bFlags;			bFlags = tmpFlags;		}		assert a.kind >= b.kind;		int result = mergeMatrix[a.kind][b.kind];				IsNullValue resultValue = instanceByFlagsList[combinedFlags >> FLAG_SHIFT][result];		return resultValue;	}