Testcase changes to support new anonymous type names
diff --git a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
index c9662dd..fa5cfe3 100644
--- a/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
+++ b/tests/org.eclipse.wst.jsdt.core.tests.compiler/src/org/eclipse/wst/jsdt/core/tests/compiler/regression/InferTypesTests.java
@@ -260,7 +260,7 @@
CompilationUnitDeclaration declaration = this.runInferTest(
"/**\n"
+ " * @constructor \n"
- + " * @extends String \n"
+ + " * @super String \n"
+ " */\n"
+"function MyClass(){}"
@@ -328,7 +328,7 @@
" bar2: function(){}"+
"}",
"X.js",
- "class ___anonymous0 extends Object{\n String bar;\n void bar2()\n}\n",
+ "class ___anonymous10_44 extends Object{\n String bar;\n void bar2()\n}\n",
getDefaultOptions()
);
@@ -345,7 +345,7 @@
" bar2: function(){}"+
"}",
"X.js",
- "class ___anonymous0 extends Object{\n String bar;\n void bar2()\n}\n",
+ "class ___anonymous14_48 extends Object{\n String bar;\n void bar2()\n}\n",
getDefaultOptions()
);
@@ -363,8 +363,8 @@
" }"+
"}",
"X.js",
- "class ___anonymous0 extends Object{\n String bar;\n ___anonymous1 bar2;\n}\n"+
- "class ___anonymous1 extends Object{\n String bar3;\n}\n",
+ "class ___anonymous10_52 extends Object{\n String bar;\n ___anonymous32_51 bar2;\n}\n"+
+ "class ___anonymous32_51 extends Object{\n String bar3;\n}\n",
getDefaultOptions()
);
@@ -381,7 +381,7 @@
" return \"\";" +
"}",
"X.js",
- "class ___anonymous0 extends Object{\n String foo;\n String bar()\n}\n",
+ "class ___anonymous9_10 extends Object{\n String foo;\n String bar()\n}\n",
getDefaultOptions()
);
@@ -397,8 +397,8 @@
" bar: \"\""+
"};",
"X.js",
- "class ___anonymous0 extends Object{\n ___anonymous1 foo;\n}\n"+
- "class ___anonymous1 extends Object{\n String bar;\n}\n",
+ "class ___anonymous9_10 extends Object{\n ___anonymous21_31 foo;\n}\n"+
+ "class ___anonymous21_31 extends Object{\n String bar;\n}\n",
getDefaultOptions()
);
@@ -432,8 +432,8 @@
" bar2: \"\""+
"}",
"X.js",
- "class foo extends Object{\n ___anonymous0 bar;\n foo()\n}\n"+
- "class ___anonymous0 extends Object{\n String bar2;\n}\n",
+ "class foo extends Object{\n ___anonymous37_48 bar;\n foo()\n}\n"+
+ "class ___anonymous37_48 extends Object{\n String bar2;\n}\n",
getDefaultOptions()
);
@@ -452,7 +452,7 @@
" return \"\";" +
"}",
"X.js",
- "class ___anonymous0 extends Object{\n ns.foo foo()\n}\n"+
+ "class ___anonymous9_10 extends Object{\n ns.foo foo()\n}\n"+
"class foo extends Object{\n String bar;\n String bar2();\n foo()\n}\n",
getDefaultOptions()
@@ -474,8 +474,8 @@
" return \"\";" +
"}",
"X.js",
- "class ___anonymous0 extends Object{\n _anonymous1 n2;\n}\n"+
- "class ___anonymous1 extends Object{\n ns1.ns2.foo foo()\n}\n"+
+ "class ___anonymous10_20 extends Object{\n ___anonymous18_19 ns2;\n}\n"+
+ "class ___anonymous18_19 extends Object{\n ns1.ns2.foo foo()\n}\n"+
"class foo extends Object{\n String bar;\n String bar2();\n foo()\n}\n",
getDefaultOptions()
@@ -498,8 +498,8 @@
" return { x : \"\", y : \"\", z : \"\" };" +
"};",
"X.js",
- "class ___anonymous0 extends Object{\n String a;\n String c;\n String b()\n ___anonymous1 d(x, y, z)\n}\n"+
- "class ___anonymous1 extends Object{\n String x;\n String y;\n String z;\n}\n",
+ "class ___anonymous10_52 extends Object{\n String a;\n String c;\n String b()\n ___anonymous101_126 d(x, y, z)\n}\n"+
+ "class ___anonymous101_126 extends Object{\n String x;\n String y;\n String z;\n}\n",
getDefaultOptions()
);
@@ -508,13 +508,93 @@
public void test071() {
CompilationUnitDeclaration declaration = this.runInferTest(
"if( true ){" +
- " var dojo = {};" +
- "}",
+ " var foo = {};" +
+ "}" +
+ "foo.bar = \"\"",
"X.js",
- "class ___anonymous0 extends Object{\n}\n",
+ "class ___anonymous23_24 extends Object{\n String bar;\n}\n",
getDefaultOptions()
);
}
+ /*
+ * Object literal within a function as return (need to prevent duplicates)
+ */
+ public void test072() {
+ CompilationUnitDeclaration declaration = this.runInferTest(
+ "var foo = function(){" +
+ " return {" +
+ " x: \"\"," +
+ " y: \"\"" +
+ " }" +
+ "};",
+ "X.js",
+ "class ___anonymous29_46 extends Object{\n String x;\n String y;\n}\n",
+ getDefaultOptions()
+
+ );
+ }
+
+ /*
+ * Object literal within a function (not a return
+ */
+ public void test073() {
+ CompilationUnitDeclaration declaration = this.runInferTest(
+ "var foo = function(){" +
+ " var bar = {" +
+ " x: \"\"," +
+ " y: \"\"" +
+ " }" +
+ "};",
+ "X.js",
+ "class ___anonymous32_49 extends Object{\n String x;\n String y;\n}\n",
+ getDefaultOptions()
+
+ );
+ }
+
+ public void test074() {
+ CompilationUnitDeclaration declaration = this.runInferTest(
+ "/**\n" +
+ " * Object Node()\n" +
+ " * @super Object\n" +
+ " * @constructor\n" +
+ " * @class Node\n" +
+ " * @since Standard ECMA-262 3rd. Edition\n" +
+ " * @since Level 2 Document Object Model Core Definition.\n" +
+ " * @link http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +
+ " */\n" +
+ "function Node(){};\n" +
+ "/**\n" +
+ " * Property firstChild\n" +
+ " * @type Node\n" +
+ " * @class Node\n" +
+ " * @see Node\n" +
+ "\n" +
+ " * @since Standard ECMA-262 3rd. Edition\n" +
+ " * @since Level 2 Document Object Model Core Definition.\n" +
+ " * @link http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +
+ " */\n" +
+ "Node.prototype.firstChild=new Node();\n" +
+ "/**\n" +
+ " * function insertBefore(newChild, refChild)\n" +
+ " * @type Node\n" +
+ " * @class Node\n" +
+ " * @param newChilds Node\n" +
+ " * @param refChild Node\n" +
+ " * @return Node\n" +
+ " * @throws DOMException\n" +
+ " * @see Node\n" +
+ " * @since Standard ECMA-262 3rd. Edition\n" +
+ " * @since Level 2 Document Object Model Core Definition.\n" +
+ " * @link http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n" +
+ " */\n" +
+ "Node.prototype.insertBefore = function(newChild, refChild){};\n",
+ "X.js",
+ "class Node extends Object{\n Node firstChild;\n Node()\n Node insertBefore(newChild, refChild)\n}\n",
+ getDefaultOptions()
+
+ );
+ }
}