(final ClassCollector collector, final LinkedHashMap<ClassNode, ClassVisitor> generatedClasses)
| 250 | } |
| 251 | |
| 252 | private static void collect(final ClassCollector collector, final LinkedHashMap<ClassNode, ClassVisitor> generatedClasses) { |
| 253 | // GROOVY-10687: drive ClassCollector after classgen -- interfaces first |
| 254 | var classes = new ArrayList<>(generatedClasses.keySet()); |
| 255 | classes.sort(Comparator.comparingInt(cn -> { |
| 256 | int n; |
| 257 | if (cn.isInterface()) { |
| 258 | var interfaces = cn.getInterfaces(); |
| 259 | n = interfaces.length; |
| 260 | for (var in : interfaces) { |
| 261 | n += in.getInterfaces().length; |
| 262 | } |
| 263 | } else { |
| 264 | n = 999; |
| 265 | while (cn != null) { n += 1; |
| 266 | cn = cn.getSuperClass(); |
| 267 | } |
| 268 | } |
| 269 | return n; |
| 270 | })); |
| 271 | |
| 272 | for (ClassNode cn : classes) { |
| 273 | collector.call(generatedClasses.get(cn), cn); |
| 274 | } |
| 275 | } |
| 276 | |
| 277 | /** |
| 278 | * Checks if this class loader has compatible {@link CompilerConfiguration} |
no test coverage detected