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