--- a/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Sun Jun 09 15:48:57 2019 -0700
+++ b/src/jdk.compiler/share/classes/com/sun/tools/javac/comp/Lower.java Mon Jun 10 05:09:52 2019 +0200
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1999, 2018, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1999, 2019, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -272,9 +272,8 @@
}
@Override
- public void visitBreak(JCBreak tree) {
- if (tree.isValueBreak())
- scan(tree.value);
+ public void visitYield(JCYield tree) {
+ scan(tree.value);
}
}
@@ -1887,7 +1886,7 @@
ClassSymbol c = types.boxedClass(type);
Symbol typeSym =
rs.accessBase(
- rs.findIdentInType(attrEnv, c.type, names.TYPE, KindSelector.VAR),
+ rs.findIdentInType(pos, attrEnv, c.type, names.TYPE, KindSelector.VAR),
pos, c.type, names.TYPE, true);
if (typeSym.kind == VAR)
((VarSymbol)typeSym).getConstValue(); // ensure initializer is evaluated
@@ -3224,6 +3223,11 @@
if (tree.target == src)
tree.target = dest;
}
+ public void visitYield(JCYield tree) {
+ if (tree.target == src)
+ tree.target = dest;
+ scan(tree.value);
+ }
public void visitContinue(JCContinue tree) {
if (tree.target == src)
tree.target = dest;
@@ -3676,9 +3680,12 @@
@Override
public void visitBreak(JCBreak tree) {
- if (tree.isValueBreak()) {
- tree.value = translate(tree.value, tree.target.type);
- }
+ result = tree;
+ }
+
+ @Override
+ public void visitYield(JCYield tree) {
+ tree.value = translate(tree.value, tree.target.type);
result = tree;
}