diff --git a/runtime/Java/src/org/antlr/v4/runtime/atn/PredictionContext.java b/runtime/Java/src/org/antlr/v4/runtime/atn/PredictionContext.java index 366f9422e..c7d116ccd 100644 --- a/runtime/Java/src/org/antlr/v4/runtime/atn/PredictionContext.java +++ b/runtime/Java/src/org/antlr/v4/runtime/atn/PredictionContext.java @@ -266,22 +266,19 @@ public abstract class PredictionContext implements Iterable b.invokingState ) { - payloads = new int[] {b.invokingState, a.invokingState}; + if ( a.invokingState > b.invokingState ) { // sort by payload + payloads[0] = b.invokingState; + payloads[1] = a.invokingState; parents = new PredictionContext[] {b.parent, a.parent}; } - ArrayPredictionContext joined = - new ArrayPredictionContext(parents, payloads); - return joined; + return new ArrayPredictionContext(parents, payloads); } }