Mercurial > hg > graal-jvmci-8
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/MessageContainer.java @ 20940:476374f3fe9a
Truffle-DSL: generate better polymorphic execute signatures
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 14 Apr 2015 15:12:48 +0200 |
parents | 62c43fcf5be2 |
children |
comparison
equal
deleted
inserted
replaced
20939:f83fd99b2962 | 20940:476374f3fe9a |
---|---|
104 return Collections.emptyList(); | 104 return Collections.emptyList(); |
105 } | 105 } |
106 visitedSinks.add(this); | 106 visitedSinks.add(this); |
107 | 107 |
108 List<Message> foundMessages = new ArrayList<>(); | 108 List<Message> foundMessages = new ArrayList<>(); |
109 if (ElementUtils.typeEquals(getMessageElement().asType(), e.asType())) { | 109 if (getMessageElement() != null && ElementUtils.typeEquals(getMessageElement().asType(), e.asType())) { |
110 foundMessages.addAll(getMessages()); | 110 foundMessages.addAll(getMessages()); |
111 } | 111 } |
112 for (MessageContainer sink : findChildContainers()) { | 112 for (MessageContainer sink : findChildContainers()) { |
113 foundMessages.addAll(sink.collectMessagesWithElementChildren(visitedSinks, e)); | 113 foundMessages.addAll(sink.collectMessagesWithElementChildren(visitedSinks, e)); |
114 } | 114 } |
117 | 117 |
118 private void verifyExpectedMessages(ProcessorContext context, Log log, List<Message> msgs) { | 118 private void verifyExpectedMessages(ProcessorContext context, Log log, List<Message> msgs) { |
119 TypeElement expectError = context.getTruffleTypes().getExpectError(); | 119 TypeElement expectError = context.getTruffleTypes().getExpectError(); |
120 if (expectError != null) { | 120 if (expectError != null) { |
121 Element element = getMessageElement(); | 121 Element element = getMessageElement(); |
122 AnnotationMirror mirror = ElementUtils.findAnnotationMirror(element.getAnnotationMirrors(), expectError.asType()); | 122 if (element != null) { |
123 if (mirror != null) { | 123 AnnotationMirror mirror = ElementUtils.findAnnotationMirror(element.getAnnotationMirrors(), expectError.asType()); |
124 List<String> values = ElementUtils.getAnnotationValueList(String.class, mirror, "value"); | 124 if (mirror != null) { |
125 if (values == null) { | 125 List<String> values = ElementUtils.getAnnotationValueList(String.class, mirror, "value"); |
126 values = Collections.emptyList(); | 126 if (values == null) { |
127 } | 127 values = Collections.emptyList(); |
128 if (values.size() != msgs.size()) { | 128 } |
129 log.message(Kind.ERROR, element, mirror, ElementUtils.getAnnotationValue(mirror, "value"), String.format("Error count expected %s but was %s.", values.size(), msgs.size())); | 129 if (values.size() != msgs.size()) { |
130 log.message(Kind.ERROR, element, mirror, ElementUtils.getAnnotationValue(mirror, "value"), String.format("Error count expected %s but was %s.", values.size(), msgs.size())); | |
131 } | |
130 } | 132 } |
131 } | 133 } |
132 } | 134 } |
133 } | 135 } |
134 | 136 |