From 7025b7aac25afa4be0f086c1ffc6787014183f25 Mon Sep 17 00:00:00 2001 From: Sam Brannen <104798+sbrannen@users.noreply.github.com> Date: Fri, 2 Feb 2024 14:43:56 +0100 Subject: [PATCH] Provide example for calculating Integer.MIN_VALUE with SpEL's power operator --- .../ROOT/pages/core/expressions/language-ref/operators.adoc | 4 ++++ .../expression/spel/SpelDocumentationTests.java | 3 +++ 2 files changed, 7 insertions(+) diff --git a/framework-docs/modules/ROOT/pages/core/expressions/language-ref/operators.adoc b/framework-docs/modules/ROOT/pages/core/expressions/language-ref/operators.adoc index b533aa2bd56..f658d77d441 100644 --- a/framework-docs/modules/ROOT/pages/core/expressions/language-ref/operators.adoc +++ b/framework-docs/modules/ROOT/pages/core/expressions/language-ref/operators.adoc @@ -415,6 +415,8 @@ Java:: int maxInt = parser.parseExpression("(2^31) - 1").getValue(int.class); // Integer.MAX_VALUE + int minInt = parser.parseExpression("-2^31").getValue(int.class); // Integer.MIN_VALUE + // -- Operator precedence -- int minusTwentyOne = parser.parseExpression("1+2-3*8").getValue(int.class); // -21 @@ -479,6 +481,8 @@ Kotlin:: val maxInt = parser.parseExpression("(2^31) - 1").getValue(Int::class.java) // Integer.MAX_VALUE + val minInt = parser.parseExpression("-2^31").getValue(Int::class.java) // Integer.MIN_VALUE + // -- Operator precedence -- val minusTwentyOne = parser.parseExpression("1+2-3*8").getValue(Int::class.java) // -21 diff --git a/spring-expression/src/test/java/org/springframework/expression/spel/SpelDocumentationTests.java b/spring-expression/src/test/java/org/springframework/expression/spel/SpelDocumentationTests.java index aa6d6ec4974..5aedfcba8af 100644 --- a/spring-expression/src/test/java/org/springframework/expression/spel/SpelDocumentationTests.java +++ b/spring-expression/src/test/java/org/springframework/expression/spel/SpelDocumentationTests.java @@ -429,6 +429,9 @@ class SpelDocumentationTests extends AbstractExpressionTests { int maxInt = parser.parseExpression("(2^31) - 1").getValue(int.class); // Integer.MAX_VALUE assertThat(maxInt).isEqualTo(Integer.MAX_VALUE); + int minInt = parser.parseExpression("-2^31").getValue(int.class); // Integer.MIN_VALUE + assertThat(minInt).isEqualTo(Integer.MIN_VALUE); + // -- Operator precedence -- int minusTwentyOne = parser.parseExpression("1+2-3*8").getValue(int.class); // -21