attributes should use CodePrimitiveExpression