Details

    • Commits:
      many

      Description

      1. Formulate the concept of compile passes
        1. Initial pass creates InstructionAnnotations
        2. Intermediate passes take InstructionAnnotations as input and output other InstructionAnnotations
        3. Final pass generates a QString from InstructionAnnotations
      2. Current QQmlJSTypePropagator is largely an initial pass.
      3. Shadow checking is moved into an intermediate pass that doesn't actually change the annotations but logs errors if shadowing is found.
      4. QQmlJSTypePropagator always uses specific types. Another intermediate pass wraps the specific types into generic ones where necessary. This way around it's much simpler than poking into the generic types to find out what specific type they're hiding.
      5. In direct mode we skip the generifying pass.
      6. In static mode we skip the shadowing errors pass.
      7. The final passes for direct and indirect mode shall be related by inheritance. All the visitor methods are already virtual. Refusing to re-use this infrastructure would make things unnecessarily complicated.

        Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

            Assignee:
            ulherman Ulf Hermann
            Reporter:
            ulherman Ulf Hermann
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved:

                Gerrit Reviews