< prev index next >

src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Infer.java

Print this page

 323                     ret = types.erasure(ret);
 324                 }
 325                 return resultInfo.check(env.tree, ret);
 326             } catch (InferenceException ex) {
 327                 resultInfo.checkContext.report(null, ex.getDiagnostic());
 328                 Assert.error(); //cannot get here (the above should throw)
 329                 return null;
 330             } finally {
 331                 if (saved_undet != null) {
 332                     inferenceContext.rollback(saved_undet);
 333                 }
 334             }
 335         }
 336     }
 337 
 338     private void dumpGraphsIfNeeded(DiagnosticPosition pos, Symbol msym, Resolve.MethodResolutionContext rsContext) {
 339         int round = 0;
 340         try {
 341             for (String graph : pendingGraphs.reverse()) {
 342                 Assert.checkNonNull(dependenciesFolder);
 343                 Name name = msym.name == msym.name.table.names.init ?
 344                         msym.owner.name : msym.name;
 345                 String filename = String.format("%s@%s[mode=%s,step=%s]_%d.dot",
 346                         name,
 347                         pos.getStartPosition(),
 348                         rsContext.attrMode(),
 349                         rsContext.step,
 350                         round);
 351                 Path dotFile = Paths.get(dependenciesFolder, filename);
 352                 try (Writer w = Files.newBufferedWriter(dotFile)) {
 353                     w.append(graph);
 354                 }
 355                 round++;
 356             }
 357         } catch (IOException ex) {
 358             Assert.error("Error occurred when dumping inference graph: " + ex.getMessage());
 359         } finally {
 360             pendingGraphs = List.nil();
 361         }
 362     }
 363 

 323                     ret = types.erasure(ret);
 324                 }
 325                 return resultInfo.check(env.tree, ret);
 326             } catch (InferenceException ex) {
 327                 resultInfo.checkContext.report(null, ex.getDiagnostic());
 328                 Assert.error(); //cannot get here (the above should throw)
 329                 return null;
 330             } finally {
 331                 if (saved_undet != null) {
 332                     inferenceContext.rollback(saved_undet);
 333                 }
 334             }
 335         }
 336     }
 337 
 338     private void dumpGraphsIfNeeded(DiagnosticPosition pos, Symbol msym, Resolve.MethodResolutionContext rsContext) {
 339         int round = 0;
 340         try {
 341             for (String graph : pendingGraphs.reverse()) {
 342                 Assert.checkNonNull(dependenciesFolder);
 343                 Name name = msym.name.table.names.isInitOrVNew(msym.name) ?
 344                         msym.owner.name : msym.name;
 345                 String filename = String.format("%s@%s[mode=%s,step=%s]_%d.dot",
 346                         name,
 347                         pos.getStartPosition(),
 348                         rsContext.attrMode(),
 349                         rsContext.step,
 350                         round);
 351                 Path dotFile = Paths.get(dependenciesFolder, filename);
 352                 try (Writer w = Files.newBufferedWriter(dotFile)) {
 353                     w.append(graph);
 354                 }
 355                 round++;
 356             }
 357         } catch (IOException ex) {
 358             Assert.error("Error occurred when dumping inference graph: " + ex.getMessage());
 359         } finally {
 360             pendingGraphs = List.nil();
 361         }
 362     }
 363 
< prev index next >