Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/typesystem/TypeCheckParser.java @ 8595:8a1115c92271
Implemented codegen guard definitions can now omit unused parameters.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Mon, 01 Apr 2013 21:43:20 +0200 |
parents | 54e227b2e199 |
children | 61ba6fc21ba4 |
comparison
equal
deleted
inserted
replaced
8594:ce6e8672f798 | 8595:8a1115c92271 |
---|---|
21 * questions. | 21 * questions. |
22 */ | 22 */ |
23 package com.oracle.truffle.codegen.processor.typesystem; | 23 package com.oracle.truffle.codegen.processor.typesystem; |
24 | 24 |
25 import java.lang.annotation.*; | 25 import java.lang.annotation.*; |
26 import java.util.*; | |
27 | 26 |
28 import javax.lang.model.element.*; | 27 import javax.lang.model.element.*; |
29 import javax.lang.model.type.*; | |
30 | 28 |
31 import com.oracle.truffle.api.codegen.*; | 29 import com.oracle.truffle.api.codegen.*; |
32 import com.oracle.truffle.codegen.processor.*; | 30 import com.oracle.truffle.codegen.processor.*; |
33 import com.oracle.truffle.codegen.processor.template.*; | 31 import com.oracle.truffle.codegen.processor.template.*; |
34 | 32 |
42 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { | 40 public MethodSpec createSpecification(ExecutableElement method, AnnotationMirror mirror) { |
43 TypeData targetType = findTypeByMethodName(method.getSimpleName().toString(), "is"); | 41 TypeData targetType = findTypeByMethodName(method.getSimpleName().toString(), "is"); |
44 if (targetType == null) { | 42 if (targetType == null) { |
45 return null; | 43 return null; |
46 } | 44 } |
47 List<ParameterSpec> specs = new ArrayList<>(); | 45 MethodSpec spec = new MethodSpec(new ParameterSpec("returnType", getContext().getType(boolean.class))); |
48 ParameterSpec valueSpec = new ParameterSpec("value", getTypeSystem().getPrimitiveTypeMirrors()); | 46 spec.addRequired(new ParameterSpec("value", getTypeSystem().getPrimitiveTypeMirrors())); |
49 valueSpec.setSignature(true); | |
50 specs.add(valueSpec); | |
51 ParameterSpec returnTypeSpec = new ParameterSpec("returnType", getContext().getType(boolean.class)); | |
52 returnTypeSpec.setSignature(true); | |
53 MethodSpec spec = new MethodSpec(Collections.<TypeMirror> emptyList(), returnTypeSpec, specs); | |
54 return spec; | 47 return spec; |
55 } | 48 } |
56 | 49 |
57 @Override | 50 @Override |
58 public TypeCheckData create(TemplateMethod method) { | 51 public TypeCheckData create(TemplateMethod method) { |