Trying again: added JSDoc file annotation with @suppress to make the remaining 
GCC type warnings go away. There are small inconsistencies between the AS and 
goog JS type (e.g. in goog, 'string' is not an Object), that we cannot 
compensate for. Since the AS compiler takes care of the type checking on the AS 
code, IMHO we need not worry that we cover up any runtime errors with this 
@suppress.

Signed-off-by: Erik de Bruin <[email protected]>


Project: http://git-wip-us.apache.org/repos/asf/flex-falcon/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-falcon/commit/d5a8c50c
Tree: http://git-wip-us.apache.org/repos/asf/flex-falcon/tree/d5a8c50c
Diff: http://git-wip-us.apache.org/repos/asf/flex-falcon/diff/d5a8c50c

Branch: refs/heads/develop
Commit: d5a8c50c5d480f1c7a7a36d54ff59ec91cc80621
Parents: 774b889
Author: Erik de Bruin <[email protected]>
Authored: Sat Nov 16 15:50:23 2013 +0100
Committer: Erik de Bruin <[email protected]>
Committed: Sat Nov 16 15:50:23 2013 +0100

----------------------------------------------------------------------
 .../codegen/js/flexjs/JSFlexJSEmitter.java      | 28 ++++++++++++++++++++
 .../codegen/mxml/flexjs/MXMLFlexJSEmitter.java  |  9 +++++++
 2 files changed, 37 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d5a8c50c/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
index b300c31..6802ba5 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/js/flexjs/JSFlexJSEmitter.java
@@ -1109,6 +1109,34 @@ public class JSFlexJSEmitter extends JSGoogEmitter 
implements IJSFlexJSEmitter
     }
 
     @Override
+    public void emitPackageHeader(IPackageDefinition definition)
+    {
+        IASScope containedScope = definition.getContainedScope();
+        ITypeDefinition type = 
findType(containedScope.getAllLocalDefinitions());
+        if (type == null)
+            return;
+
+        writeNewline("/**");
+        writeNewline(" * " + type.getQualifiedName());
+        writeNewline(" *");
+        writeNewline(" * @fileoverview");
+        writeNewline(" *");
+        writeNewline(" * @suppress {checkTypes}");
+        writeNewline(" */");
+        writeNewline();
+        
+        /* goog.provide('x');\n\n */
+        write(JSGoogEmitterTokens.GOOG_PROVIDE);
+        write(ASEmitterTokens.PAREN_OPEN);
+        write(ASEmitterTokens.SINGLE_QUOTE);
+        write(type.getQualifiedName());
+        write(ASEmitterTokens.SINGLE_QUOTE);
+        write(ASEmitterTokens.PAREN_CLOSE);
+        writeNewline(ASEmitterTokens.SEMICOLON);
+        writeNewline();
+    }
+
+    @Override
     public void emitPackageHeaderContents(IPackageDefinition definition)
     {
         PackageScope containedScope = (PackageScope) definition

http://git-wip-us.apache.org/repos/asf/flex-falcon/blob/d5a8c50c/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
----------------------------------------------------------------------
diff --git 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
index 68bad5e..f722223 100644
--- 
a/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
+++ 
b/compiler.jx/src/org/apache/flex/compiler/internal/codegen/mxml/flexjs/MXMLFlexJSEmitter.java
@@ -1380,6 +1380,15 @@ public class MXMLFlexJSEmitter extends MXMLEmitter 
implements
         String cname = node.getFileNode().getName();
         String bcname = node.getBaseClassName();
 
+        writeNewline("/**");
+        writeNewline(" * " + cname);
+        writeNewline(" *");
+        writeNewline(" * @fileoverview");
+        writeNewline(" *");
+        writeNewline(" * @suppress {checkTypes}");
+        writeNewline(" */");
+        writeNewline();
+        
         emitHeaderLine(cname, true); // provide
         writeNewline();
         emitHeaderLine(bcname);

Reply via email to