Fixed operator precedence detection in AstSerializer.

Change-Id: I35361546167a8f3e8406ca7d325211acca67b5ec
diff --git a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
index 1d56b33..5a41f4a 100644
--- a/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
+++ b/query/plugins/org.eclipse.acceleo.query/src/org/eclipse/acceleo/query/parser/AstSerializer.java
@@ -625,10 +625,12 @@
 		final boolean res;
 
 		final Integer precedence = OPERATOR_PRECEDENCE.get(call.getServiceName());
-		final Integer parentPrecedence;
-		if (call.eContainer() instanceof Call && ((Call)call.eContainer()).getArguments().get(0) == call) {
-			parentPrecedence = OPERATOR_PRECEDENCE.getOrDefault(((Call)call.eContainer()).getServiceName(),
-					-1);
+		Integer parentPrecedence;
+		if (call.eContainer() instanceof Call) {
+			parentPrecedence = OPERATOR_PRECEDENCE.get(((Call)call.eContainer()).getServiceName());
+			if (parentPrecedence == null && ((Call)call.eContainer()).getArguments().get(0) == call) {
+				parentPrecedence = -1;
+			}
 		} else {
 			parentPrecedence = null;
 		}
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/AstSerializerTests.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/AstSerializerTests.java
index f5ffbe6..e3f78eb 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/AstSerializerTests.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/parser/tests/AstSerializerTests.java
@@ -150,6 +150,8 @@
 		res.add("1 - -1");
 		res.add("1 / -1");
 
+		res.add("('a' + 'b').toUpper()");
+
 		return res;
 	}
 
diff --git a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/tests/AllTests.java b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/tests/AllTests.java
index 4a6f3c7..8d201ad 100644
--- a/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/tests/AllTests.java
+++ b/query/tests/org.eclipse.acceleo.query.tests/src/org/eclipse/acceleo/query/tests/AllTests.java
@@ -13,6 +13,7 @@
 import org.eclipse.acceleo.query.ast.test.AstBuilderTest;
 import org.eclipse.acceleo.query.ast.test.AstEvaluatorTest;
 import org.eclipse.acceleo.query.ast.test.delegates.DelegateTests;
+import org.eclipse.acceleo.query.parser.tests.AstSerializerTests;
 import org.eclipse.acceleo.query.parser.tests.BuildTest;
 import org.eclipse.acceleo.query.parser.tests.CombineIteratorTest;
 import org.eclipse.acceleo.query.parser.tests.CompletionCheck;
@@ -101,7 +102,7 @@
 		ValidationInferrenceTest.class, TypeTests.class, QueryEnvironmentTests.class,
 		EPackageProviderTests.class, CompletionCheck.class, FilterCamelCaseTest.class,
 		CollectionServicesAstValidationTest.class, DelegateTests.class, CombineIteratorTest.class,
-		PositionsTests.class, })
+		PositionsTests.class, AstSerializerTests.class, })
 public class AllTests {
 
 }