Uploaded image for project: 'Fluid Infusion'
  1. Fluid Infusion
  2. FLUID-3771

Expansion of arguments for fluid.deferredCall with respect to fluid.deferredInvokeCall is anomalous

    XMLWordPrintable

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.1
    • 1.3
    • IoC System
    • None

    Description

      At present, expansion of options trees presented to the IoC system as descended from the "components" block proceeds by an incorrect algorithm. This frequently appears when applying the expanders "deferredCall" vs "deferredInvokeCall". At present it is possible for this expansion to occur some variable number of times - for example, the test case in FluidIoCTests which is named "stackThroughInvoke" will fail, if the expander in its definition with type "deferredCall" is replaced with "deferredInvokeCall". This is because this substitution will cause the arguments list to be expanded twice, once as part of global expansion and then again when the expander is evaluated. This then discovers the component itself as deposited from phase 1 and attempts to treat it as material for expansion. This algorithm needs to be globally reimplemented, especially with respect to the more fine-grained "options expansion with priority" functionality that is upcoming.

      Attachments

        1. FLUID-3771.patch
          5 kB
          Antranig Basman
        2. FLUID-3771 (2).patch
          33 kB
          Antranig Basman

        Activity

          People

            colin Colin Clark
            antranig Antranig Basman
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: