On 10/31/14, 8:52 AM, "Christofer Dutz" <christofer.d...@c-ware.de> wrote:

>Well I think the Bindable on classes is valid, but I'm talking about
>interfaces.
>
>I couldn't find a definitive answer on this topic while searching the web.
>
>The question is ... what should Falcon do?

First, are you sure you’re synced up on the develop branch?  I thought I’d
fixed some things for [Bindable].

The simplest answer is that Falcon has to do whatever MXMLC did.  Take a
file with an interface without [Bindable].  Compile it with MXMLC.  Add
[Bindable], compile it again, examine the differences.  Then teach Falcon
to do the same.

I’m pretty sure Falcon has to at least not report a warning when somebody
does this

  <fx:Script>
        public var foo:ISomeInterface;
  </fx:Script>
  <SomeTag someValue="{foo.someGetter}” />

It should not output that it may not be able to detect changes to
someGetter.

>1. Ignore the Bindable metadata on interfaces
>2. Add a warning, but ignore the Bindable in any other way
>3. Automatically extend the IEventDispatcher interface
>4. something I didn't think of.
>
>For my part I thought 3 would be best, but while writing the code for
>that I had to notice that in the compiler interfaces models don't seem to
>have any metaInfos. Going even further it seems that this part of code
>can't work this way at all, not even for classes.

1 and 3 are not options.  MXMLC was ok with it so Falcon must as well.
I’ve found many bugs in interface handling.  I could swear I have
[Bindable] working for classes.  If there might be issues in multiple
definitions in a file, do a test with MXMLC.  If it can’t handle it, then
you can argue that Falcon doesn’t have to either.

-Alex

Reply via email to