comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/generator/DSLExpressionGenerator.java @ 20939:f83fd99b2962

Truffle-DSL: add support for null literals.
author Christian Humer <christian.humer@gmail.com>
date Tue, 14 Apr 2015 15:12:48 +0200
parents 62c43fcf5be2
children
comparison
equal deleted inserted replaced
20938:18c0f02fa4d2 20939:f83fd99b2962
23 package com.oracle.truffle.dsl.processor.generator; 23 package com.oracle.truffle.dsl.processor.generator;
24 24
25 import java.util.*; 25 import java.util.*;
26 26
27 import javax.lang.model.element.*; 27 import javax.lang.model.element.*;
28 import javax.lang.model.type.*;
28 29
29 import com.oracle.truffle.dsl.processor.expression.*; 30 import com.oracle.truffle.dsl.processor.expression.*;
30 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Binary; 31 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Binary;
31 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Call; 32 import com.oracle.truffle.dsl.processor.expression.DSLExpression.Call;
32 import com.oracle.truffle.dsl.processor.expression.DSLExpression.DSLExpressionVisitor; 33 import com.oracle.truffle.dsl.processor.expression.DSLExpression.DSLExpressionVisitor;
95 } 96 }
96 97
97 public void visitVariable(Variable variable) { 98 public void visitVariable(Variable variable) {
98 VariableElement resolvedVariable = variable.getResolvedVariable(); 99 VariableElement resolvedVariable = variable.getResolvedVariable();
99 CodeTree tree; 100 CodeTree tree;
100 if (variable.getReceiver() == null) { 101 if (variable.getResolvedType().getKind() == TypeKind.NULL) {
102 tree = CodeTreeBuilder.singleString("null");
103 } else if (variable.getReceiver() == null) {
101 104
102 if (isStatic(resolvedVariable)) { 105 if (isStatic(resolvedVariable)) {
103 tree = staticReference(resolvedVariable); 106 tree = staticReference(resolvedVariable);
104 } else { 107 } else {
105 tree = bindings.get(variable); 108 tree = bindings.get(variable);