1889 log.error(tree.pos(), Errors.BreakAmbiguousTarget(label));
1890 if (jumpTarget.snd == null) {
1891 tree.target = jumpTarget.fst;
1892 attribute = false;
1893 } else {
1894 //nothing
1895 }
1896 } else {
1897 if (jumpTarget.snd != null) {
1898 log.error(tree.pos(), jumpTarget.snd);
1899 }
1900 tree.target = jumpTarget.fst;
1901 attribute = false;
1902 }
1903 }
1904 }
1905 if (attribute) {
1906 attribTree(tree.value, env, env.info.breakResult);
1907 JCTree immediateTarget = findJumpTarget(tree.pos(), tree.getTag(), null, env);
1908 if (immediateTarget.getTag() != SWITCH_EXPRESSION) {
1909 log.error(tree.pos(), Errors.BreakExprNotImmediate);
1910 Env<AttrContext> env1 = env;
1911 while (env1 != null && env1.tree.getTag() != SWITCH_EXPRESSION) {
1912 env1 = env1.next;
1913 }
1914 Assert.checkNonNull(env1);
1915 tree.target = env1.tree;
1916 } else {
1917 tree.target = immediateTarget;
1918 }
1919 }
1920 }
1921 } else {
1922 if (tree.value == null || tree.value.hasTag(IDENT)) {
1923 Name label = tree.value != null ? ((JCIdent) tree.value).name : null;
1924 tree.target = findJumpTarget(tree.pos(), tree.getTag(), label, env);
1925 } else {
1926 log.error(tree.pos(), Errors.BreakComplexValueNoSwitchExpression);
1927 attribTree(tree.value, env, unknownExprInfo);
1928 }
1929 }
|
1889 log.error(tree.pos(), Errors.BreakAmbiguousTarget(label));
1890 if (jumpTarget.snd == null) {
1891 tree.target = jumpTarget.fst;
1892 attribute = false;
1893 } else {
1894 //nothing
1895 }
1896 } else {
1897 if (jumpTarget.snd != null) {
1898 log.error(tree.pos(), jumpTarget.snd);
1899 }
1900 tree.target = jumpTarget.fst;
1901 attribute = false;
1902 }
1903 }
1904 }
1905 if (attribute) {
1906 attribTree(tree.value, env, env.info.breakResult);
1907 JCTree immediateTarget = findJumpTarget(tree.pos(), tree.getTag(), null, env);
1908 if (immediateTarget.getTag() != SWITCH_EXPRESSION) {
1909 log.error(tree.pos(), Errors.BreakExprNotImmediate(immediateTarget.getTag()));
1910 Env<AttrContext> env1 = env;
1911 while (env1 != null && env1.tree.getTag() != SWITCH_EXPRESSION) {
1912 env1 = env1.next;
1913 }
1914 Assert.checkNonNull(env1);
1915 tree.target = env1.tree;
1916 } else {
1917 tree.target = immediateTarget;
1918 }
1919 }
1920 }
1921 } else {
1922 if (tree.value == null || tree.value.hasTag(IDENT)) {
1923 Name label = tree.value != null ? ((JCIdent) tree.value).name : null;
1924 tree.target = findJumpTarget(tree.pos(), tree.getTag(), label, env);
1925 } else {
1926 log.error(tree.pos(), Errors.BreakComplexValueNoSwitchExpression);
1927 attribTree(tree.value, env, unknownExprInfo);
1928 }
1929 }
|