Supporting outer attributes for union types