comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java @ 8256:4dc7034317ec

Cleanup.
author Christian Humer <christian.humer@gmail.com>
date Wed, 13 Mar 2013 20:04:42 +0100
parents 0905d796944a
children 89006c76f737
comparison
equal deleted inserted replaced
8255:1384c39e2c53 8256:4dc7034317ec
288 SpecializationData specialization = specializations.get(0); 288 SpecializationData specialization = specializations.get(0);
289 GenericParser parser = new GenericParser(context, node); 289 GenericParser parser = new GenericParser(context, node);
290 MethodSpec specification = parser.createDefaultMethodSpec(specialization.getMethod(), null, null); 290 MethodSpec specification = parser.createDefaultMethodSpec(specialization.getMethod(), null, null);
291 291
292 ExecutableTypeData anyGenericReturnType = node.findAnyGenericExecutableType(context); 292 ExecutableTypeData anyGenericReturnType = node.findAnyGenericExecutableType(context);
293 if (anyGenericReturnType == null) { 293 assert anyGenericReturnType != null;
294 // TODO fail invalid executable type. should be validated by field. (assertion
295 // failure!?)
296 }
297 294
298 ActualParameter returnType = new ActualParameter(specification.getReturnType(), anyGenericReturnType.getType().getPrimitiveType(), 0, false); 295 ActualParameter returnType = new ActualParameter(specification.getReturnType(), anyGenericReturnType.getType().getPrimitiveType(), 0, false);
299 List<ActualParameter> parameters = new ArrayList<>(); 296 List<ActualParameter> parameters = new ArrayList<>();
300 for (ActualParameter specializationParameter : specialization.getParameters()) { 297 for (ActualParameter specializationParameter : specialization.getParameters()) {
301 ParameterSpec parameterSpec = specification.findParameterSpec(specializationParameter.getSpecification().getName()); 298 ParameterSpec parameterSpec = specification.findParameterSpec(specializationParameter.getSpecification().getName());
303 TypeMirror actualType; 300 TypeMirror actualType;
304 if (field == null) { 301 if (field == null) {
305 actualType = specializationParameter.getActualType(); 302 actualType = specializationParameter.getActualType();
306 } else { 303 } else {
307 ExecutableTypeData paramType = field.getNodeData().findAnyGenericExecutableType(context); 304 ExecutableTypeData paramType = field.getNodeData().findAnyGenericExecutableType(context);
308 if (paramType == null) { 305 assert paramType != null;
309 // TODO fail
310 }
311 actualType = paramType.getType().getPrimitiveType(); 306 actualType = paramType.getType().getPrimitiveType();
312 } 307 }
313 parameters.add(new ActualParameter(parameterSpec, actualType, specializationParameter.getIndex(), specializationParameter.isHidden())); 308 parameters.add(new ActualParameter(parameterSpec, actualType, specializationParameter.getIndex(), specializationParameter.isHidden()));
314 } 309 }
315 TemplateMethod genericMethod = new TemplateMethod("Generic", node, specification, null, null, returnType, parameters); 310 TemplateMethod genericMethod = new TemplateMethod("Generic", node, specification, null, null, returnType, parameters);
316 genericSpecialization = new SpecializationData(genericMethod, true, false, true); 311 genericSpecialization = new SpecializationData(genericMethod, true, false);
317 312
318 specializations.add(genericSpecialization); 313 specializations.add(genericSpecialization);
319 } 314 }
320 315
321 if (genericSpecialization != null) { 316 if (genericSpecialization != null) {
322 CodeExecutableElement uninitializedMethod = new CodeExecutableElement(Utils.modifiers(Modifier.PUBLIC), context.getType(void.class), "doUninitialized"); 317 CodeExecutableElement uninitializedMethod = new CodeExecutableElement(Utils.modifiers(Modifier.PUBLIC), context.getType(void.class), "doUninitialized");
323 TemplateMethod uninializedMethod = new TemplateMethod("Uninitialized", node, genericSpecialization.getSpecification(), uninitializedMethod, genericSpecialization.getMarkerAnnotation(), 318 TemplateMethod uninializedMethod = new TemplateMethod("Uninitialized", node, genericSpecialization.getSpecification(), uninitializedMethod, genericSpecialization.getMarkerAnnotation(),
324 genericSpecialization.getReturnType(), genericSpecialization.getParameters()); 319 genericSpecialization.getReturnType(), genericSpecialization.getParameters());
325 specializations.add(new SpecializationData(uninializedMethod, false, true, true)); 320 specializations.add(new SpecializationData(uninializedMethod, false, true));
326 } 321 }
327 322
328 Collections.sort(specializations, new Comparator<SpecializationData>() { 323 Collections.sort(specializations, new Comparator<SpecializationData>() {
329 324
330 @Override 325 @Override