• b43
    • unknown
    • generic
    • Verified

      Type.ForAll is currently used for two purposes:

      *) To represent the type of a generic method declaration
      *) To represent a partially instantiated return type that will be fully instantiated after method checking

      The latter usage is a bit clumsy - javac does method type inference in two completely separate rounds, which means there has to be an (indirect) way to communicate results from the former stage to the latter. This role has been taken over by the ForAll class - meaning that when we check a partially instantiated method type against a target, we callback into the ForAll type and finish up inference. This is not very regular and leads to problems when trying to expand the scope of type-inference.

            mcimadamore Maurizio Cimadamore
            mcimadamore Maurizio Cimadamore
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: