You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/12/26 06:01:40 UTC

[royale-compiler] 05/12: toAnnotationString changed in Closure, but also output annotations like a leading ! so some were changed to getDisplayName. Others might need to change as well

This is an automated email from the ASF dual-hosted git repository.

aharui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-compiler.git

commit 4cf4a3292d6ae7a7db326ece629c6d7e98cd8d07
Author: Alex Harui <ah...@apache.org>
AuthorDate: Tue Dec 25 21:46:30 2018 -0800

    toAnnotationString changed in Closure, but also output annotations like a leading ! so some were changed to getDisplayName.  Others might need to change as well
---
 .../internal/codegen/typedefs/reference/BaseReference.java |  9 +++++----
 .../codegen/typedefs/reference/ClassReference.java         | 14 ++++++++++----
 .../codegen/typedefs/reference/ConstantReference.java      |  1 +
 .../codegen/typedefs/reference/FieldReference.java         |  7 ++++---
 .../codegen/typedefs/reference/MethodReference.java        |  3 ++-
 .../codegen/typedefs/reference/ReferenceModel.java         |  5 +++++
 .../internal/codegen/typedefs/utils/JSTypeUtils.java       |  8 +++++++-
 7 files changed, 34 insertions(+), 13 deletions(-)

diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
index e2204b6..0be229f 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/BaseReference.java
@@ -32,6 +32,7 @@ import com.google.javascript.rhino.JSDocInfo.StringPosition;
 import com.google.javascript.rhino.JSDocInfo.TypePosition;
 import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.Node;
+import com.google.javascript.rhino.jstype.JSType.Nullability;
 
 public abstract class BaseReference
 {
@@ -275,7 +276,7 @@ public abstract class BaseReference
             if (outputJS && parameterType != null)
             {
                 sb.append("{");
-                sb.append(mapBackToJS(getModel().evaluate(parameterType).toAnnotationString(), optional));
+                sb.append(mapBackToJS(getModel().evaluate(parameterType).toAnnotationString(Nullability.EXPLICIT), optional));
                 sb.append("}");
                 sb.append(" ");            	
             }
@@ -292,7 +293,7 @@ public abstract class BaseReference
             if (!outputJS && parameterType != null)
             {
                 sb.append("[");
-                sb.append(getModel().evaluate(parameterType).toAnnotationString());
+                sb.append(getModel().evaluate(parameterType).toAnnotationString(Nullability.EXPLICIT));
                 sb.append("]");
                 sb.append(" ");
             }
@@ -313,9 +314,9 @@ public abstract class BaseReference
                 sb.append(" * @returns ");
                 sb.append("{");
                 if (outputJS)
-                    sb.append(mapBackToJS(getModel().evaluate(returnType).toAnnotationString(), false));
+                    sb.append(mapBackToJS(getModel().evaluate(returnType).toAnnotationString(Nullability.EXPLICIT), false));
                 else
-                	sb.append(getModel().evaluate(returnType).toAnnotationString());
+                	sb.append(getModel().evaluate(returnType).toAnnotationString(Nullability.EXPLICIT));
                 sb.append("} ");
                 String description = getComment().getReturnDescription();
                 if (description != null)
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
index 7817e7c..429f1d1 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ClassReference.java
@@ -40,6 +40,8 @@ import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.Node;
 import com.google.javascript.rhino.jstype.JSType;
 import com.google.javascript.rhino.jstype.ObjectType;
+import com.google.javascript.rhino.jstype.TemplatizedType;
+import com.google.javascript.rhino.jstype.JSType.Nullability;
 
 public class ClassReference extends BaseReference
 {
@@ -502,7 +504,7 @@ public class ClassReference extends BaseReference
         ArrayList<ClassReference> result = new ArrayList<ClassReference>();
         for (JSTypeExpression jsTypeExpression : getComment().getImplementedInterfaces())
         {
-            String interfaceName = getModel().evaluate(jsTypeExpression).toAnnotationString();
+            String interfaceName = getModel().evaluate(jsTypeExpression).getDisplayName();
             ClassReference reference = getModel().getClassReference(interfaceName);
             if (reference != null)
                 result.add(reference);
@@ -515,7 +517,7 @@ public class ClassReference extends BaseReference
         ArrayList<ClassReference> result = new ArrayList<ClassReference>();
         for (JSTypeExpression jsTypeExpression : getComment().getExtendedInterfaces())
         {
-            String interfaceName = getModel().evaluate(jsTypeExpression).toAnnotationString();
+            String interfaceName = getModel().evaluate(jsTypeExpression).getDisplayName();
             ClassReference reference = getModel().getClassReference(interfaceName);
             if (reference != null)
                 result.add(reference);
@@ -530,7 +532,11 @@ public class ClassReference extends BaseReference
         for (JSTypeExpression jsTypeExpression : implementedInterfaces)
         {
             JSType jsType = getModel().evaluate(jsTypeExpression);
-            String interfaceName = jsType.toAnnotationString();
+            if (jsType.isTemplatizedType())
+            {
+            	jsType = ((TemplatizedType)jsType).getReferencedType();
+            }
+            String interfaceName = jsType.getDisplayName();
             ClassReference interfaceReference = getModel().getClassReference(interfaceName);
             if (interfaceReference != null)
             	result.add(interfaceReference);
@@ -871,7 +877,7 @@ public class ClassReference extends BaseReference
             sb.append("extends ");
             for (JSTypeExpression jsTypeExpression : extendedInterfaces)
             {
-                String value = getModel().evaluate(jsTypeExpression).toAnnotationString();
+                String value = getModel().evaluate(jsTypeExpression).toString();
                 sb.append(value);
                 if (--len > 0)
                     sb.append(", ");
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ConstantReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ConstantReference.java
index f4c8351..d103e36 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ConstantReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ConstantReference.java
@@ -91,6 +91,7 @@ public class ConstantReference extends BaseReference
         HashMap<String, String> map = new HashMap<String, String>();
         map.put("Number", "0");
         map.put("undefined", "0");
+        map.put("Boolean", "false");
 
         if (map.containsKey(type))
             return map.get(type);
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java
index 3f95e37..a9233a4 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/FieldReference.java
@@ -32,6 +32,7 @@ import com.google.javascript.rhino.JSDocInfo.Marker;
 import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.Node;
 import com.google.javascript.rhino.jstype.JSType;
+import com.google.javascript.rhino.jstype.JSType.Nullability;
 
 public class FieldReference extends MemberReference
 {
@@ -79,7 +80,7 @@ public class FieldReference extends MemberReference
         {
             jsType = getModel().evaluate(getComment().getType());
         }
-        return jsType != null ? jsType.toAnnotationString() : "Object";
+        return jsType != null ? jsType.toAnnotationString(Nullability.EXPLICIT) : "Object";
     }
 
     public FieldReference(ReferenceModel model, ClassReference classReference, Node node, String name,
@@ -284,7 +285,7 @@ public class FieldReference extends MemberReference
                 sb.append(indent);
                 sb.append(" * @type ");
                 sb.append("{");
-                sb.append(mapBackToJS(getModel().evaluate(type).toAnnotationString(), false));
+                sb.append(mapBackToJS(getModel().evaluate(type).toAnnotationString(Nullability.EXPLICIT), false));
                 sb.append("} ");
                 sb.append("\n");
         	}
@@ -293,7 +294,7 @@ public class FieldReference extends MemberReference
                 sb.append(indent);
                 sb.append(" * @see JSType - ");
                 sb.append("[");
-                sb.append(getModel().evaluate(type).toAnnotationString());
+                sb.append(getModel().evaluate(type).toAnnotationString(Nullability.EXPLICIT));
                 sb.append("] ");
                 String description = getComment().getReturnDescription();
                 if (description != null)
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java
index 218e910..df02449 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/MethodReference.java
@@ -31,6 +31,7 @@ import com.google.javascript.rhino.JSDocInfo;
 import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.Node;
 import com.google.javascript.rhino.jstype.JSType;
+import com.google.javascript.rhino.jstype.JSType.Nullability;
 
 public class MethodReference extends MemberReference
 {
@@ -69,7 +70,7 @@ public class MethodReference extends MemberReference
     public String toReturnTypeAnnotationString()
     {
         JSType jsType = getModel().evaluate(getComment().getReturnType());
-        return jsType.toAnnotationString();
+        return jsType.toAnnotationString(Nullability.EXPLICIT);
     }
 
     public MethodReference(ReferenceModel model, ClassReference classReference, Node node, String name,
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ReferenceModel.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ReferenceModel.java
index f0fcd24..1fe4d5c 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ReferenceModel.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/reference/ReferenceModel.java
@@ -37,6 +37,7 @@ import com.google.javascript.rhino.JSDocInfo;
 import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.Node;
 import com.google.javascript.rhino.jstype.JSType;
+import com.google.javascript.rhino.jstype.TemplatizedType;
 
 public class ReferenceModel
 {
@@ -328,6 +329,10 @@ public class ReferenceModel
             try
             {
                 jsType = expression.evaluate(null, jscompiler.getTypeRegistry());
+                if (jsType.isTemplatizedType())
+                {
+                	jsType = ((TemplatizedType)jsType).getReferencedType();
+                }
             }
             catch (Exception e)
             {
diff --git a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/JSTypeUtils.java b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/JSTypeUtils.java
index a2f85ee..2dd8ec5 100644
--- a/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/JSTypeUtils.java
+++ b/compiler-externc/src/main/java/org/apache/royale/compiler/internal/codegen/typedefs/utils/JSTypeUtils.java
@@ -29,7 +29,9 @@ import org.apache.royale.compiler.internal.codegen.typedefs.reference.ReferenceM
 import com.google.javascript.rhino.JSTypeExpression;
 import com.google.javascript.rhino.jstype.JSType;
 import com.google.javascript.rhino.jstype.NamedType;
+import com.google.javascript.rhino.jstype.TemplatizedType;
 import com.google.javascript.rhino.jstype.UnionType;
+import com.google.javascript.rhino.jstype.JSType.Nullability;
 
 public class JSTypeUtils
 {
@@ -92,7 +94,7 @@ public class JSTypeUtils
     public static String toEnumTypeString(BaseReference reference)
     {
         JSTypeExpression enumParameterType = reference.getComment().getEnumParameterType();
-        String overrideStringType = transformType(reference.getModel().evaluate(enumParameterType).toAnnotationString());
+        String overrideStringType = transformType(reference.getModel().evaluate(enumParameterType).toAnnotationString(Nullability.EXPLICIT));
 
         return overrideStringType;
     }
@@ -167,6 +169,10 @@ public class JSTypeUtils
         {
             return "* /* " + type + " */";
         }
+        else if (jsType.isTemplatizedType())
+        {
+        	return ((TemplatizedType)jsType).getReferencedType().toString();
+        }
         else
         {
             if (type.indexOf("Array<") == 0)