I have been looking into FLEX-35273 [1].

This is a compiler bug where it is possible to do things that don't make sense, 
like:

<js:initialView>
        <local:MyInitialView id="view1" />
        <local:MyInitialView id="view2" />
</js:initialView>

or even this :

<js:initialView>
        <js:SimpleCSSValuesImpl />
</js:initialView>

Neither of the above caused compile time errors.

I have a fix for both the above scenarios.

For the first one, I used MXMLDuplicateChildTagProblem which seems 'close 
enough'

"Child tag '${childTag}' bound to namespace '${childNamespace}' is already 
specified for element '${element}'. It will be ignored.";

This renders as :
Child tag 'MyInitialView' bound to namespace '*' is already specified for 
element 'js:initialView'. It will be ignored.
   <local:MyInitialView id="view2" />
    ^

in the first example above. The text does not feel entirely right, but seems 
close enough. "It will be ignored" sounds more like a warning (as opposed to an 
error/failure), which I think a) it should not be and b) it is not. 

For the second one, I could not find any relevant 'Problem' class (I may have 
missed one perhaps?) So I just made a new one. I don't really know what the 
rules are here.
These Problems seem to include an error code so I am unclear what to do if I 
add a new one. i.e. it is not clear what new error code I should apply (or even 
if the error code is important for something).
For now I just added an arbitrary errorCode = 1999 on 
MXMLBadChildTagPropertyAssignmentProblem.

The new problem renders out to :
In initializer for 'js:initialView', type 
org.apache.flex.core.SimpleCSSValuesImpl is not assignable to target type 
'org.apache.flex.core.IApplicationView'. 

Alex, you may be able to advise here.... are there any rules I need to follow 
for the CompilerProblem classes (in particular, when adding a new class).

Assuming all is well above, I will commit this fix tomorrow. I was also trying 
to see if I could figure out how to get checkintests running, but I so far I 
did not. However the regular build tests are all fine with the changes I made 
for this.


1. https://issues.apache.org/jira/browse/FLEX-35273

Reply via email to