Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8016207

Widening of capture vars occurs at unspecified times

    Details

      Description

      javac's treatment of capture is often inconsistent with the specification. Sometimes capture occurs in places other than where it is specified. Sometimes a capture variable is "widened" to its upper bound.

      The changes necessary to match the specification seem to run pretty deep; there doesn't seem to be an easy quick fix.

      There may be some value in javac's behavior; if so, it should be identified and pushed back into the specification.

        Issue Links

          Activity

          Hide
          dlsmith Dan Smith added a comment -
          One example from Attr.visitForEachLoop:
          Type exprType = types.cvarUpperBound(attribExpr(tree.expr, loopEnv))
          Show
          dlsmith Dan Smith added a comment - One example from Attr.visitForEachLoop: Type exprType = types.cvarUpperBound(attribExpr(tree.expr, loopEnv))

            People

            • Assignee:
              dlsmith Dan Smith
              Reporter:
              dlsmith Dan Smith
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated: