Mercurial > hg > graal-compiler
comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/java/ElementUtils.java @ 19289:62c43fcf5be2
Truffle-DSL: implement @Cached and fixes for the new guard expression syntax.
author | Christian Humer <christian.humer@gmail.com> |
---|---|
date | Tue, 03 Feb 2015 15:07:07 +0100 |
parents | b339d723a06b |
children | 35c3e3af8c39 |
comparison
equal
deleted
inserted
replaced
19288:3a37116ef37f | 19289:62c43fcf5be2 |
---|---|
1118 types.add(element.asType()); | 1118 types.add(element.asType()); |
1119 } | 1119 } |
1120 return types; | 1120 return types; |
1121 } | 1121 } |
1122 | 1122 |
1123 public static boolean variableEquals(VariableElement var1, VariableElement var2) { | |
1124 if (!var1.getSimpleName().equals(var2.getSimpleName())) { | |
1125 return false; | |
1126 } | |
1127 if (!ElementUtils.typeEquals(var1.asType(), var2.asType())) { | |
1128 return false; | |
1129 } | |
1130 if (!ElementUtils.elementEquals(var1.getEnclosingElement(), var2.getEnclosingElement())) { | |
1131 return false; | |
1132 } | |
1133 return true; | |
1134 } | |
1135 | |
1136 public static boolean executableEquals(ExecutableElement var1, ExecutableElement var2) { | |
1137 if (!var1.getSimpleName().equals(var2.getSimpleName())) { | |
1138 return false; | |
1139 } | |
1140 if (var1.getParameters().size() != var2.getParameters().size()) { | |
1141 return false; | |
1142 } | |
1143 if (!ElementUtils.typeEquals(var1.asType(), var2.asType())) { | |
1144 return false; | |
1145 } | |
1146 if (!ElementUtils.elementEquals(var1.getEnclosingElement(), var2.getEnclosingElement())) { | |
1147 return false; | |
1148 } | |
1149 for (int i = 0; i < var1.getParameters().size(); i++) { | |
1150 if (!typeEquals(var1.getParameters().get(i).asType(), var2.getParameters().get(i).asType())) { | |
1151 return false; | |
1152 } | |
1153 } | |
1154 return true; | |
1155 } | |
1156 | |
1157 public static boolean elementEquals(Element element1, Element element2) { | |
1158 if (element1.getKind() != element2.getKind()) { | |
1159 return false; | |
1160 } else if (element1 instanceof VariableElement) { | |
1161 return variableEquals((VariableElement) element1, (VariableElement) element2); | |
1162 } else if (element1 instanceof ExecutableElement) { | |
1163 return executableEquals((ExecutableElement) element1, (ExecutableElement) element2); | |
1164 } else if (element1 instanceof TypeElement) { | |
1165 return typeEquals(element1.asType(), element2.asType()); | |
1166 } else if (element1 instanceof PackageElement) { | |
1167 return element1.getSimpleName().equals(element2.getSimpleName()); | |
1168 } else { | |
1169 throw new AssertionError("unsupported element type"); | |
1170 } | |
1171 } | |
1123 } | 1172 } |