Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java @ 8644:586b5e117c44
Fixed NodeParser error synchronization was done too late.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Fri, 05 Apr 2013 11:03:21 +0200 |
parents | 8a1115c92271 |
children | 5eeade940236 |
comparison
equal
deleted
inserted
replaced
8643:3d2c2b68fe93 | 8644:586b5e117c44 |
---|---|
150 nodeType = type; | 150 nodeType = type; |
151 } | 151 } |
152 | 152 |
153 NodeData nodeData = parseNodeData(type, nodeType); | 153 NodeData nodeData = parseNodeData(type, nodeType); |
154 | 154 |
155 if (nodeData.hasErrors()) { | |
156 return nodeData; // error sync point | |
157 } | |
158 | |
155 if (Utils.typeEquals(nodeType.asType(), type.asType())) { | 159 if (Utils.typeEquals(nodeType.asType(), type.asType())) { |
156 // filter fields if they were not split. (field are accessible anyway) | 160 // filter fields if they were not split. (field are accessible anyway) |
157 for (ListIterator<NodeFieldData> iterator = nodeData.getFields().listIterator(); iterator.hasNext();) { | 161 for (ListIterator<NodeFieldData> iterator = nodeData.getFields().listIterator(); iterator.hasNext();) { |
158 NodeFieldData field = iterator.next(); | 162 NodeFieldData field = iterator.next(); |
159 if (field.getKind() == FieldKind.FIELD) { | 163 if (field.getKind() == FieldKind.FIELD) { |
160 iterator.remove(); | 164 iterator.remove(); |
161 } | 165 } |
162 } | 166 } |
163 } | |
164 | |
165 if (nodeData.hasErrors()) { | |
166 return nodeData; // error sync point | |
167 } | 167 } |
168 | 168 |
169 List<Element> elements = new ArrayList<>(context.getEnvironment().getElementUtils().getAllMembers(type)); | 169 List<Element> elements = new ArrayList<>(context.getEnvironment().getElementUtils().getAllMembers(type)); |
170 nodeData.setExtensionElements(getExtensionParser().parseAll(nodeData, elements)); | 170 nodeData.setExtensionElements(getExtensionParser().parseAll(nodeData, elements)); |
171 if (nodeData.getExtensionElements() != null) { | 171 if (nodeData.getExtensionElements() != null) { |