Mercurial > hg > truffle
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/node/SpecializationGroup.java @ 11481:a317acdd5f2c
Truffle-DSL: fixed a bug in else connections of generic generated methods.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Fri, 30 Aug 2013 15:55:52 +0200 |
parents | 5d72a3f5a31d |
children | d6a5ab791b0d |
comparison
equal
deleted
inserted
replaced
11480:f33beed55ddc | 11481:a317acdd5f2c |
---|---|
108 | 108 |
109 return elseConnectableGuards; | 109 return elseConnectableGuards; |
110 } | 110 } |
111 | 111 |
112 private GuardData findNegatedGuardInPrevious(GuardData guard) { | 112 private GuardData findNegatedGuardInPrevious(GuardData guard) { |
113 SpecializationGroup previous = this; | 113 SpecializationGroup previous = this.getPreviousGroup(); |
114 while ((previous = previous.getPreviousGroup()) != null) { | 114 if (previous == null) { |
115 List<GuardData> elseConnectedGuards = previous.getElseConnectableGuards(); | 115 return null; |
116 | 116 } |
117 if (previous == null || previous.getGuards().size() != elseConnectedGuards.size() + 1) { | 117 List<GuardData> elseConnectedGuards = previous.getElseConnectableGuards(); |
118 return null; | 118 |
119 } | 119 if (previous == null || previous.getGuards().size() != elseConnectedGuards.size() + 1) { |
120 GuardData previousGuard = previous.getGuards().get(elseConnectedGuards.size()); | 120 return null; |
121 if (guard.getMethod().equals(previousGuard.getMethod()) && guard.isNegated() != previousGuard.isNegated()) { | 121 } |
122 return guard; | 122 GuardData previousGuard = previous.getGuards().get(elseConnectedGuards.size()); |
123 } | 123 if (guard.getMethod().equals(previousGuard.getMethod()) && guard.isNegated() != previousGuard.isNegated()) { |
124 return guard; | |
124 } | 125 } |
125 return null; | 126 return null; |
126 } | 127 } |
127 | 128 |
128 private void updateChildren(List<SpecializationGroup> childs) { | 129 private void updateChildren(List<SpecializationGroup> childs) { |