code: protected TypeData getTypeData(XExpression expression, boolean returnType, boolean nullIfEmpty) {
  		if (!shared.allExpressionTypes.contains(expression)) {
  			return null;
  		}
  		List<TypeData> values = doGetTypeData(expression);
  		if (values == null) {
  			return null;
  		}
  		TypeData result = mergeTypeData(expression, values, returnType, nullIfEmpty);
  		return result;
  	}
docs: /* @Nullable