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
|