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)