@@ -132,7 +132,8 @@ enum HTMLElements : DeclarationMacro {
132132 initializers += " } "
133133 string += initializers
134134
135- var render = " \n public var description : String { \n "
135+ var referencedStringDelimiter : Bool = false
136+ var render = " \n @inlinable public var description : String { \n "
136137 var attributes_func = " "
137138 var itemsArray : String = " "
138139 if !attributes. isEmpty {
@@ -152,6 +153,7 @@ enum HTMLElements : DeclarationMacro {
152153 default : break
153154 }
154155 if valueType. first == " [ " {
156+ referencedStringDelimiter = true
155157 itemsArray += " if let _ \( variableName) :String = "
156158 let separator = separator ( key: key)
157159 switch valueType {
@@ -160,7 +162,7 @@ enum HTMLElements : DeclarationMacro {
160162 case " [Int] " , " [Float] " :
161163 itemsArray += " \( key) ?.map({ \" \\ ($0) \" }) "
162164 default :
163- itemsArray += " \( key) ?.compactMap({ return $0.htmlValue(encoding: encoding, forMacro: fromMacro) }) "
165+ itemsArray += " \( key) ?.compactMap({ $0.htmlValue(encoding: encoding, forMacro: fromMacro) }) "
164166 }
165167 itemsArray += " .joined(separator: \" \( separator) \" ) { \n "
166168 itemsArray += #"let k:String = _ \#( variableName) .isEmpty ? "" : "=" + sd + _ \#( variableName) + sd"#
@@ -171,18 +173,20 @@ enum HTMLElements : DeclarationMacro {
171173 case " Bool " :
172174 itemsArray += " if \( key) { items.append( \" \( keyLiteral) \" ) } \n "
173175 case " String " , " Int " , " Float " , " Double " :
176+ referencedStringDelimiter = true
174177 let value = valueType == " String " ? key : " String(describing: \( key) ) "
175178 itemsArray += #"if let \#( key) { items.append(" \#( keyLiteral) =" + sd + \#( value) + sd) }"#
176179 itemsArray += " \n "
177180 default :
181+ referencedStringDelimiter = true
178182 itemsArray += " if let \( key) , let v = \( key) .htmlValue(encoding: encoding, forMacro: fromMacro) { \n "
179183 itemsArray += #"let s = \#( key) .htmlValueIsVoidable && v.isEmpty ? "" : "=" + sd + v + sd"#
180184 itemsArray += " \n items.append( \" \( keyLiteral) \" + s) "
181185 itemsArray += " \n } \n "
182186 }
183187 }
184188 }
185- render += attributes_func + itemsArray
189+ render += ( !referencedStringDelimiter ? " " : attributes_func) + itemsArray
186190 render += " return render( "
187191 if tag == " html " {
188192 render += " prefix: \" !DOCTYPE html \" , "
0 commit comments