Fix #247 - expand concatenation to include collections and maps
diff --git a/spec/src/main/asciidoc/ELSpec.adoc b/spec/src/main/asciidoc/ELSpec.adoc
index 339cb4e..a6dbe7e 100644
--- a/spec/src/main/asciidoc/ELSpec.adoc
+++ b/spec/src/main/asciidoc/ELSpec.adoc
@@ -876,13 +876,31 @@
* Otherwise, error
-=== String Concatenation Operator - `A += B`
+=== Concatenation Operator - `A += B`
To evaluate `A += B`:
-* Coerce `A` and `B` to String
+* If `A` and `B` are ``Map``s
-* Return the concatenated string of `A` and `B`
+** return `A.putAll(B)`
+
+** If method call results in exception, error
+
+* If `A` is a `Set` and `B` is a collection
+
+** return `A.addAll(B)`
+
+** If method call results in exception, error
+
+* If `A` is a `List` and `B` is a collection
+
+** return `A.addAll(B)`
+
+** If method call results in exception, error
+
+* Otherwise, Coerce `A` and `B` to String
+
+** return the concatenated string of `A` and `B`
=== Relational Operators
@@ -3053,6 +3071,10 @@
Add support for the null coalescing operator (`??`) and the Elvis operator
(`?:`).
+* https://github.com/jakartaee/expression-language/issues/247[#247]
+ Expand the definition of the concatenation operator (`+=`) to include
+ collections.
+
* https://github.com/jakartaee/expression-language/issues/313[#313]
Add support for inner classes when using the `ImportHandler` and clarify that
the import handler expects canonical class names where full class names are