comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/SpecializedNodeFactory.java @ 18758:3912400fc33a

Truffle-DSL: remove type system singleton
author Christian Humer <christian.humer@gmail.com>
date Mon, 29 Dec 2014 23:38:42 +0100
parents 59bf50cc5a32
children a665483c3881
comparison
equal deleted inserted replaced
18757:0ec5f5a2e720 18758:3912400fc33a
490 490
491 builder.startReturn(); 491 builder.startReturn();
492 if (targetType == null || sourceType == null) { 492 if (targetType == null || sourceType == null) {
493 builder.tree(returnBuilder.getRoot()); 493 builder.tree(returnBuilder.getRoot());
494 } else if (sourceType.needsCastTo(targetType)) { 494 } else if (sourceType.needsCastTo(targetType)) {
495 String castMethodName = TypeSystemCodeGenerator.expectTypeMethodName(targetType); 495 CodeTree cast;
496 if (!executable.hasUnexpectedValue(context)) { 496 if (executable.hasUnexpectedValue(context)) {
497 castMethodName = TypeSystemCodeGenerator.asTypeMethodName(targetType); 497 cast = TypeSystemCodeGenerator.expect(targetType, returnBuilder.getRoot());
498 } 498 } else {
499 builder.tree(createCallTypeSystemMethod(parent, node, castMethodName, returnBuilder.getRoot())); 499 cast = TypeSystemCodeGenerator.cast(targetType, returnBuilder.getRoot());
500 }
501 builder.tree(cast);
500 } else { 502 } else {
501 builder.tree(returnBuilder.getRoot()); 503 builder.tree(returnBuilder.getRoot());
502 } 504 }
503 builder.end(); 505 builder.end();
504 } 506 }