Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/node/NodeParser.java @ 8662:5eeade940236
Fixed user generic signature must not match generated generic signature.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Sat, 06 Apr 2013 16:26:19 +0200 |
parents | 586b5e117c44 |
children | e2b471ba533a |
comparison
equal
deleted
inserted
replaced
8661:e0ff5cf358a4 | 8662:5eeade940236 |
---|---|
326 | 326 |
327 specializations.add(genericSpecialization); | 327 specializations.add(genericSpecialization); |
328 } | 328 } |
329 | 329 |
330 if (genericSpecialization != null) { | 330 if (genericSpecialization != null) { |
331 if (genericSpecialization.isUseSpecializationsForGeneric()) { | |
332 for (ActualParameter parameter : genericSpecialization.getReturnTypeAndParameters()) { | |
333 if (Utils.isObject(parameter.getActualType())) { | |
334 continue; | |
335 } | |
336 Set<String> types = new HashSet<>(); | |
337 for (SpecializationData specialization : specializations) { | |
338 ActualParameter actualParameter = specialization.findParameter(parameter.getLocalName()); | |
339 if (actualParameter != null) { | |
340 types.add(Utils.getQualifiedName(actualParameter.getActualType())); | |
341 } | |
342 } | |
343 if (types.size() > 1) { | |
344 genericSpecialization.replaceParameter(parameter.getLocalName(), new ActualParameter(parameter, node.getTypeSystem().getGenericType())); | |
345 } | |
346 } | |
347 } | |
331 TemplateMethod uninializedMethod = new TemplateMethod("Uninitialized", node, genericSpecialization.getSpecification(), null, null, genericSpecialization.getReturnType(), | 348 TemplateMethod uninializedMethod = new TemplateMethod("Uninitialized", node, genericSpecialization.getSpecification(), null, null, genericSpecialization.getReturnType(), |
332 genericSpecialization.getParameters()); | 349 genericSpecialization.getParameters()); |
333 // should not use messages from generic specialization | 350 // should not use messages from generic specialization |
334 uninializedMethod.getMessages().clear(); | 351 uninializedMethod.getMessages().clear(); |
335 specializations.add(new SpecializationData(uninializedMethod, false, true)); | 352 specializations.add(new SpecializationData(uninializedMethod, false, true)); |