| OLD | NEW |
| 1 // This code was auto-generated, is not intended to be edited, and is subject to | 1 // This code was auto-generated, is not intended to be edited, and is subject to |
| 2 // significant change. Please see the README file for more information. | 2 // significant change. Please see the README file for more information. |
| 3 | 3 |
| 4 library engine.element_test; | 4 library engine.element_test; |
| 5 | 5 |
| 6 import 'dart:collection'; | 6 import 'dart:collection'; |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'package:analyzer_experimental/src/generated/java_core.dart'; | 8 import 'package:analyzer_experimental/src/generated/java_core.dart'; |
| 9 import 'package:analyzer_experimental/src/generated/java_engine.dart'; | 9 import 'package:analyzer_experimental/src/generated/java_engine.dart'; |
| 10 import 'package:analyzer_experimental/src/generated/java_engine_io.dart'; | 10 import 'package:analyzer_experimental/src/generated/java_engine_io.dart'; |
| 11 import 'package:analyzer_experimental/src/generated/java_junit.dart'; | 11 import 'package:analyzer_experimental/src/generated/java_junit.dart'; |
| 12 import 'package:analyzer_experimental/src/generated/source_io.dart'; | 12 import 'package:analyzer_experimental/src/generated/source_io.dart'; |
| 13 import 'package:analyzer_experimental/src/generated/error.dart'; | 13 import 'package:analyzer_experimental/src/generated/error.dart'; |
| 14 import 'package:analyzer_experimental/src/generated/scanner.dart'; | 14 import 'package:analyzer_experimental/src/generated/scanner.dart'; |
| 15 import 'package:analyzer_experimental/src/generated/utilities_dart.dart'; | 15 import 'package:analyzer_experimental/src/generated/utilities_dart.dart'; |
| 16 import 'package:analyzer_experimental/src/generated/ast.dart' hide Annotation; | 16 import 'package:analyzer_experimental/src/generated/ast.dart' hide Annotation; |
| 17 import 'package:analyzer_experimental/src/generated/element.dart' hide Annotatio
n; | 17 import 'package:analyzer_experimental/src/generated/element.dart' hide Annotatio
n; |
| 18 import 'package:analyzer_experimental/src/generated/engine.dart' show AnalysisCo
ntext, AnalysisContextImpl; | 18 import 'package:analyzer_experimental/src/generated/engine.dart' show AnalysisCo
ntext, AnalysisContextImpl; |
| 19 import 'package:unittest/unittest.dart' as _ut; | 19 import 'package:unittest/unittest.dart' as _ut; |
| 20 import 'test_support.dart'; | 20 import 'test_support.dart'; |
| 21 import 'scanner_test.dart' show TokenFactory; | 21 import 'scanner_test.dart' show TokenFactory; |
| 22 import 'ast_test.dart' show ASTFactory; | 22 import 'ast_test.dart' show ASTFactory; |
| 23 import 'resolver_test.dart' show TestTypeProvider; |
| 23 | 24 |
| 24 class ElementLocationImplTest extends EngineTestCase { | 25 class ElementLocationImplTest extends EngineTestCase { |
| 25 void test_create_encoding() { | 26 void test_create_encoding() { |
| 26 String encoding = "a;b;c"; | 27 String encoding = "a;b;c"; |
| 27 ElementLocationImpl location = new ElementLocationImpl.con2(encoding); | 28 ElementLocationImpl location = new ElementLocationImpl.con2(encoding); |
| 28 JUnitTestCase.assertEquals(encoding, location.encoding); | 29 JUnitTestCase.assertEquals(encoding, location.encoding); |
| 29 } | 30 } |
| 30 void test_equals_equal() { | 31 void test_equals_equal() { |
| 31 String encoding = "a;b;c"; | 32 String encoding = "a;b;c"; |
| 32 ElementLocationImpl first = new ElementLocationImpl.con2(encoding); | 33 ElementLocationImpl first = new ElementLocationImpl.con2(encoding); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 }); | 90 }); |
| 90 _ut.test('test_getEncoding', () { | 91 _ut.test('test_getEncoding', () { |
| 91 final __test = new ElementLocationImplTest(); | 92 final __test = new ElementLocationImplTest(); |
| 92 runJUnitTest(__test, __test.test_getEncoding); | 93 runJUnitTest(__test, __test.test_getEncoding); |
| 93 }); | 94 }); |
| 94 }); | 95 }); |
| 95 } | 96 } |
| 96 } | 97 } |
| 97 class LibraryElementImplTest extends EngineTestCase { | 98 class LibraryElementImplTest extends EngineTestCase { |
| 98 void test_creation() { | 99 void test_creation() { |
| 99 JUnitTestCase.assertNotNull(new LibraryElementImpl(new AnalysisContextImpl()
, ASTFactory.libraryIdentifier2(["l"]))); | 100 JUnitTestCase.assertNotNull(new LibraryElementImpl(createAnalysisContext(),
ASTFactory.libraryIdentifier2(["l"]))); |
| 100 } | 101 } |
| 101 void test_getImportedLibraries() { | 102 void test_getImportedLibraries() { |
| 102 AnalysisContext context = new AnalysisContextImpl(); | 103 AnalysisContext context = createAnalysisContext(); |
| 103 LibraryElementImpl library1 = ElementFactory.library(context, "l1"); | 104 LibraryElementImpl library1 = ElementFactory.library(context, "l1"); |
| 104 LibraryElementImpl library2 = ElementFactory.library(context, "l2"); | 105 LibraryElementImpl library2 = ElementFactory.library(context, "l2"); |
| 105 LibraryElementImpl library3 = ElementFactory.library(context, "l3"); | 106 LibraryElementImpl library3 = ElementFactory.library(context, "l3"); |
| 106 LibraryElementImpl library4 = ElementFactory.library(context, "l4"); | 107 LibraryElementImpl library4 = ElementFactory.library(context, "l4"); |
| 107 PrefixElement prefixA = new PrefixElementImpl(ASTFactory.identifier2("a")); | 108 PrefixElement prefixA = new PrefixElementImpl(ASTFactory.identifier3("a")); |
| 108 PrefixElement prefixB = new PrefixElementImpl(ASTFactory.identifier2("b")); | 109 PrefixElement prefixB = new PrefixElementImpl(ASTFactory.identifier3("b")); |
| 109 List<ImportElementImpl> imports = [ElementFactory.importFor(library2, null,
[]), ElementFactory.importFor(library2, prefixB, []), ElementFactory.importFor(l
ibrary3, null, []), ElementFactory.importFor(library3, prefixA, []), ElementFact
ory.importFor(library3, prefixB, []), ElementFactory.importFor(library4, prefixA
, [])]; | 110 List<ImportElementImpl> imports = [ElementFactory.importFor(library2, null,
[]), ElementFactory.importFor(library2, prefixB, []), ElementFactory.importFor(l
ibrary3, null, []), ElementFactory.importFor(library3, prefixA, []), ElementFact
ory.importFor(library3, prefixB, []), ElementFactory.importFor(library4, prefixA
, [])]; |
| 110 library1.imports = imports; | 111 library1.imports = imports; |
| 111 List<LibraryElement> libraries = library1.importedLibraries; | 112 List<LibraryElement> libraries = library1.importedLibraries; |
| 112 EngineTestCase.assertEqualsIgnoreOrder(<LibraryElement> [library2, library3,
library4], libraries); | 113 EngineTestCase.assertEqualsIgnoreOrder(<LibraryElement> [library2, library3,
library4], libraries); |
| 113 } | 114 } |
| 114 void test_getPrefixes() { | 115 void test_getPrefixes() { |
| 115 AnalysisContext context = new AnalysisContextImpl(); | 116 AnalysisContext context = createAnalysisContext(); |
| 116 LibraryElementImpl library18 = ElementFactory.library(context, "l1"); | 117 LibraryElementImpl library18 = ElementFactory.library(context, "l1"); |
| 117 PrefixElement prefixA = new PrefixElementImpl(ASTFactory.identifier2("a")); | 118 PrefixElement prefixA = new PrefixElementImpl(ASTFactory.identifier3("a")); |
| 118 PrefixElement prefixB = new PrefixElementImpl(ASTFactory.identifier2("b")); | 119 PrefixElement prefixB = new PrefixElementImpl(ASTFactory.identifier3("b")); |
| 119 List<ImportElementImpl> imports = [ElementFactory.importFor(ElementFactory.l
ibrary(context, "l2"), null, []), ElementFactory.importFor(ElementFactory.librar
y(context, "l3"), null, []), ElementFactory.importFor(ElementFactory.library(con
text, "l4"), prefixA, []), ElementFactory.importFor(ElementFactory.library(conte
xt, "l5"), prefixA, []), ElementFactory.importFor(ElementFactory.library(context
, "l6"), prefixB, [])]; | 120 List<ImportElementImpl> imports = [ElementFactory.importFor(ElementFactory.l
ibrary(context, "l2"), null, []), ElementFactory.importFor(ElementFactory.librar
y(context, "l3"), null, []), ElementFactory.importFor(ElementFactory.library(con
text, "l4"), prefixA, []), ElementFactory.importFor(ElementFactory.library(conte
xt, "l5"), prefixA, []), ElementFactory.importFor(ElementFactory.library(context
, "l6"), prefixB, [])]; |
| 120 library18.imports = imports; | 121 library18.imports = imports; |
| 121 List<PrefixElement> prefixes2 = library18.prefixes; | 122 List<PrefixElement> prefixes2 = library18.prefixes; |
| 122 EngineTestCase.assertLength(2, prefixes2); | 123 EngineTestCase.assertLength(2, prefixes2); |
| 123 if (identical(prefixA, prefixes2[0])) { | 124 if (identical(prefixA, prefixes2[0])) { |
| 124 JUnitTestCase.assertSame(prefixB, prefixes2[1]); | 125 JUnitTestCase.assertSame(prefixB, prefixes2[1]); |
| 125 } else { | 126 } else { |
| 126 JUnitTestCase.assertSame(prefixB, prefixes2[0]); | 127 JUnitTestCase.assertSame(prefixB, prefixes2[0]); |
| 127 JUnitTestCase.assertSame(prefixA, prefixes2[1]); | 128 JUnitTestCase.assertSame(prefixA, prefixes2[1]); |
| 128 } | 129 } |
| 129 } | 130 } |
| 130 void test_isUpToDate() { | 131 void test_isUpToDate() { |
| 131 AnalysisContext context = new AnalysisContextImpl(); | 132 AnalysisContext context = createAnalysisContext(); |
| 132 context.sourceFactory = new SourceFactory.con2([]); | 133 context.sourceFactory = new SourceFactory.con2([]); |
| 133 LibraryElement library19 = ElementFactory.library(context, "foo"); | 134 LibraryElement library19 = ElementFactory.library(context, "foo"); |
| 134 context.sourceFactory.setContents(library19.definingCompilationUnit.source,
"sdfsdff"); | 135 context.sourceFactory.setContents(library19.definingCompilationUnit.source,
"sdfsdff"); |
| 135 JUnitTestCase.assertFalse(library19.isUpToDate2(0)); | 136 JUnitTestCase.assertFalse(library19.isUpToDate2(0)); |
| 136 JUnitTestCase.assertTrue(library19.isUpToDate2(JavaSystem.currentTimeMillis(
) + 1000)); | 137 JUnitTestCase.assertTrue(library19.isUpToDate2(JavaSystem.currentTimeMillis(
) + 1000)); |
| 137 } | 138 } |
| 138 void test_setImports() { | 139 void test_setImports() { |
| 139 AnalysisContext context = new AnalysisContextImpl(); | 140 AnalysisContext context = createAnalysisContext(); |
| 140 LibraryElementImpl library = new LibraryElementImpl(context, ASTFactory.libr
aryIdentifier2(["l1"])); | 141 LibraryElementImpl library = new LibraryElementImpl(context, ASTFactory.libr
aryIdentifier2(["l1"])); |
| 141 List<ImportElementImpl> expectedImports = [ElementFactory.importFor(ElementF
actory.library(context, "l2"), null, []), ElementFactory.importFor(ElementFactor
y.library(context, "l3"), null, [])]; | 142 List<ImportElementImpl> expectedImports = [ElementFactory.importFor(ElementF
actory.library(context, "l2"), null, []), ElementFactory.importFor(ElementFactor
y.library(context, "l3"), null, [])]; |
| 142 library.imports = expectedImports; | 143 library.imports = expectedImports; |
| 143 List<ImportElement> actualImports = library.imports; | 144 List<ImportElement> actualImports = library.imports; |
| 144 EngineTestCase.assertLength(expectedImports.length, actualImports); | 145 EngineTestCase.assertLength(expectedImports.length, actualImports); |
| 145 for (int i = 0; i < actualImports.length; i++) { | 146 for (int i = 0; i < actualImports.length; i++) { |
| 146 JUnitTestCase.assertSame(expectedImports[i], actualImports[i]); | 147 JUnitTestCase.assertSame(expectedImports[i], actualImports[i]); |
| 147 } | 148 } |
| 148 } | 149 } |
| 149 static dartSuite() { | 150 static dartSuite() { |
| (...skipping 15 matching lines...) Expand all Loading... |
| 165 runJUnitTest(__test, __test.test_isUpToDate); | 166 runJUnitTest(__test, __test.test_isUpToDate); |
| 166 }); | 167 }); |
| 167 _ut.test('test_setImports', () { | 168 _ut.test('test_setImports', () { |
| 168 final __test = new LibraryElementImplTest(); | 169 final __test = new LibraryElementImplTest(); |
| 169 runJUnitTest(__test, __test.test_setImports); | 170 runJUnitTest(__test, __test.test_setImports); |
| 170 }); | 171 }); |
| 171 }); | 172 }); |
| 172 } | 173 } |
| 173 } | 174 } |
| 174 class InterfaceTypeImplTest extends EngineTestCase { | 175 class InterfaceTypeImplTest extends EngineTestCase { |
| 176 /** |
| 177 * The type provider used to access the types. |
| 178 */ |
| 179 TestTypeProvider _typeProvider; |
| 180 void setUp() { |
| 181 _typeProvider = new TestTypeProvider(); |
| 182 } |
| 175 void test_computeLongestInheritancePathToObject_multipleInterfacePaths() { | 183 void test_computeLongestInheritancePathToObject_multipleInterfacePaths() { |
| 176 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 184 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 177 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 185 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 178 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 186 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 179 ClassElementImpl elementD = ElementFactory.classElement2("D", []); | 187 ClassElementImpl classD = ElementFactory.classElement2("D", []); |
| 180 ClassElementImpl elementE = ElementFactory.classElement2("E", []); | 188 ClassElementImpl classE = ElementFactory.classElement2("E", []); |
| 181 elementB.interfaces = <InterfaceType> [elementA.type]; | 189 classB.interfaces = <InterfaceType> [classA.type]; |
| 182 elementC.interfaces = <InterfaceType> [elementA.type]; | 190 classC.interfaces = <InterfaceType> [classA.type]; |
| 183 elementD.interfaces = <InterfaceType> [elementC.type]; | 191 classD.interfaces = <InterfaceType> [classC.type]; |
| 184 elementE.interfaces = <InterfaceType> [elementB.type, elementD.type]; | 192 classE.interfaces = <InterfaceType> [classB.type, classD.type]; |
| 185 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementB.type)); | 193 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classB.type)); |
| 186 JUnitTestCase.assertEquals(4, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementE.type)); | 194 JUnitTestCase.assertEquals(4, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classE.type)); |
| 187 } | 195 } |
| 188 void test_computeLongestInheritancePathToObject_multipleSuperclassPaths() { | 196 void test_computeLongestInheritancePathToObject_multipleSuperclassPaths() { |
| 189 ClassElement elementA = ElementFactory.classElement2("A", []); | 197 ClassElement classA = ElementFactory.classElement2("A", []); |
| 190 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 198 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 191 ClassElement elementC = ElementFactory.classElement("C", elementA.type, []); | 199 ClassElement classC = ElementFactory.classElement("C", classA.type, []); |
| 192 ClassElement elementD = ElementFactory.classElement("D", elementC.type, []); | 200 ClassElement classD = ElementFactory.classElement("D", classC.type, []); |
| 193 ClassElementImpl elementE = ElementFactory.classElement("E", elementB.type,
[]); | 201 ClassElementImpl classE = ElementFactory.classElement("E", classB.type, []); |
| 194 elementE.interfaces = <InterfaceType> [elementD.type]; | 202 classE.interfaces = <InterfaceType> [classD.type]; |
| 195 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementB.type)); | 203 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classB.type)); |
| 196 JUnitTestCase.assertEquals(4, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementE.type)); | 204 JUnitTestCase.assertEquals(4, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classE.type)); |
| 197 } | 205 } |
| 198 void test_computeLongestInheritancePathToObject_object() { | 206 void test_computeLongestInheritancePathToObject_object() { |
| 199 ClassElement elementA = ElementFactory.classElement2("A", []); | 207 ClassElement classA = ElementFactory.classElement2("A", []); |
| 200 InterfaceType object = elementA.supertype; | 208 InterfaceType object = classA.supertype; |
| 201 JUnitTestCase.assertEquals(0, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(object)); | 209 JUnitTestCase.assertEquals(0, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(object)); |
| 202 } | 210 } |
| 203 void test_computeLongestInheritancePathToObject_singleInterfacePath() { | 211 void test_computeLongestInheritancePathToObject_singleInterfacePath() { |
| 204 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 212 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 205 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 213 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 206 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 214 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 207 elementB.interfaces = <InterfaceType> [elementA.type]; | 215 classB.interfaces = <InterfaceType> [classA.type]; |
| 208 elementC.interfaces = <InterfaceType> [elementB.type]; | 216 classC.interfaces = <InterfaceType> [classB.type]; |
| 209 JUnitTestCase.assertEquals(1, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementA.type)); | 217 JUnitTestCase.assertEquals(1, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classA.type)); |
| 210 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementB.type)); | 218 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classB.type)); |
| 211 JUnitTestCase.assertEquals(3, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementC.type)); | 219 JUnitTestCase.assertEquals(3, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classC.type)); |
| 212 } | 220 } |
| 213 void test_computeLongestInheritancePathToObject_singleSuperclassPath() { | 221 void test_computeLongestInheritancePathToObject_singleSuperclassPath() { |
| 214 ClassElement elementA = ElementFactory.classElement2("A", []); | 222 ClassElement classA = ElementFactory.classElement2("A", []); |
| 215 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 223 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 216 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 224 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 217 JUnitTestCase.assertEquals(1, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementA.type)); | 225 JUnitTestCase.assertEquals(1, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classA.type)); |
| 218 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementB.type)); | 226 JUnitTestCase.assertEquals(2, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classB.type)); |
| 219 JUnitTestCase.assertEquals(3, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(elementC.type)); | 227 JUnitTestCase.assertEquals(3, InterfaceTypeImpl.computeLongestInheritancePat
hToObject(classC.type)); |
| 220 } | 228 } |
| 221 void test_computeSuperinterfaceSet_multipleInterfacePaths() { | 229 void test_computeSuperinterfaceSet_multipleInterfacePaths() { |
| 222 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 230 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 223 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 231 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 224 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 232 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 225 ClassElementImpl elementD = ElementFactory.classElement2("D", []); | 233 ClassElementImpl classD = ElementFactory.classElement2("D", []); |
| 226 ClassElementImpl elementE = ElementFactory.classElement2("E", []); | 234 ClassElementImpl classE = ElementFactory.classElement2("E", []); |
| 227 elementB.interfaces = <InterfaceType> [elementA.type]; | 235 classB.interfaces = <InterfaceType> [classA.type]; |
| 228 elementC.interfaces = <InterfaceType> [elementA.type]; | 236 classC.interfaces = <InterfaceType> [classA.type]; |
| 229 elementD.interfaces = <InterfaceType> [elementC.type]; | 237 classD.interfaces = <InterfaceType> [classC.type]; |
| 230 elementE.interfaces = <InterfaceType> [elementB.type, elementD.type]; | 238 classE.interfaces = <InterfaceType> [classB.type, classD.type]; |
| 231 Set<InterfaceType> superinterfacesOfD = InterfaceTypeImpl.computeSuperinterf
aceSet(elementD.type); | 239 Set<InterfaceType> superinterfacesOfD = InterfaceTypeImpl.computeSuperinterf
aceSet(classD.type); |
| 232 JUnitTestCase.assertNotNull(superinterfacesOfD); | 240 JUnitTestCase.assertNotNull(superinterfacesOfD); |
| 233 JUnitTestCase.assertTrue(superinterfacesOfD.contains(ElementFactory.object.t
ype)); | 241 JUnitTestCase.assertTrue(superinterfacesOfD.contains(ElementFactory.object.t
ype)); |
| 234 JUnitTestCase.assertTrue(superinterfacesOfD.contains(elementA.type)); | 242 JUnitTestCase.assertTrue(superinterfacesOfD.contains(classA.type)); |
| 235 JUnitTestCase.assertTrue(superinterfacesOfD.contains(elementC.type)); | 243 JUnitTestCase.assertTrue(superinterfacesOfD.contains(classC.type)); |
| 236 JUnitTestCase.assertEquals(3, superinterfacesOfD.length); | 244 JUnitTestCase.assertEquals(3, superinterfacesOfD.length); |
| 237 Set<InterfaceType> superinterfacesOfE = InterfaceTypeImpl.computeSuperinterf
aceSet(elementE.type); | 245 Set<InterfaceType> superinterfacesOfE = InterfaceTypeImpl.computeSuperinterf
aceSet(classE.type); |
| 238 JUnitTestCase.assertNotNull(superinterfacesOfE); | 246 JUnitTestCase.assertNotNull(superinterfacesOfE); |
| 239 JUnitTestCase.assertTrue(superinterfacesOfE.contains(ElementFactory.object.t
ype)); | 247 JUnitTestCase.assertTrue(superinterfacesOfE.contains(ElementFactory.object.t
ype)); |
| 240 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementA.type)); | 248 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classA.type)); |
| 241 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementB.type)); | 249 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classB.type)); |
| 242 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementC.type)); | 250 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classC.type)); |
| 243 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementD.type)); | 251 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classD.type)); |
| 244 JUnitTestCase.assertEquals(5, superinterfacesOfE.length); | 252 JUnitTestCase.assertEquals(5, superinterfacesOfE.length); |
| 245 } | 253 } |
| 246 void test_computeSuperinterfaceSet_multipleSuperclassPaths() { | 254 void test_computeSuperinterfaceSet_multipleSuperclassPaths() { |
| 247 ClassElement elementA = ElementFactory.classElement2("A", []); | 255 ClassElement classA = ElementFactory.classElement2("A", []); |
| 248 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 256 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 249 ClassElement elementC = ElementFactory.classElement("C", elementA.type, []); | 257 ClassElement classC = ElementFactory.classElement("C", classA.type, []); |
| 250 ClassElement elementD = ElementFactory.classElement("D", elementC.type, []); | 258 ClassElement classD = ElementFactory.classElement("D", classC.type, []); |
| 251 ClassElementImpl elementE = ElementFactory.classElement("E", elementB.type,
[]); | 259 ClassElementImpl classE = ElementFactory.classElement("E", classB.type, []); |
| 252 elementE.interfaces = <InterfaceType> [elementD.type]; | 260 classE.interfaces = <InterfaceType> [classD.type]; |
| 253 Set<InterfaceType> superinterfacesOfD = InterfaceTypeImpl.computeSuperinterf
aceSet(elementD.type); | 261 Set<InterfaceType> superinterfacesOfD = InterfaceTypeImpl.computeSuperinterf
aceSet(classD.type); |
| 254 JUnitTestCase.assertNotNull(superinterfacesOfD); | 262 JUnitTestCase.assertNotNull(superinterfacesOfD); |
| 255 JUnitTestCase.assertTrue(superinterfacesOfD.contains(ElementFactory.object.t
ype)); | 263 JUnitTestCase.assertTrue(superinterfacesOfD.contains(ElementFactory.object.t
ype)); |
| 256 JUnitTestCase.assertTrue(superinterfacesOfD.contains(elementA.type)); | 264 JUnitTestCase.assertTrue(superinterfacesOfD.contains(classA.type)); |
| 257 JUnitTestCase.assertTrue(superinterfacesOfD.contains(elementC.type)); | 265 JUnitTestCase.assertTrue(superinterfacesOfD.contains(classC.type)); |
| 258 JUnitTestCase.assertEquals(3, superinterfacesOfD.length); | 266 JUnitTestCase.assertEquals(3, superinterfacesOfD.length); |
| 259 Set<InterfaceType> superinterfacesOfE = InterfaceTypeImpl.computeSuperinterf
aceSet(elementE.type); | 267 Set<InterfaceType> superinterfacesOfE = InterfaceTypeImpl.computeSuperinterf
aceSet(classE.type); |
| 260 JUnitTestCase.assertNotNull(superinterfacesOfE); | 268 JUnitTestCase.assertNotNull(superinterfacesOfE); |
| 261 JUnitTestCase.assertTrue(superinterfacesOfE.contains(ElementFactory.object.t
ype)); | 269 JUnitTestCase.assertTrue(superinterfacesOfE.contains(ElementFactory.object.t
ype)); |
| 262 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementA.type)); | 270 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classA.type)); |
| 263 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementB.type)); | 271 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classB.type)); |
| 264 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementC.type)); | 272 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classC.type)); |
| 265 JUnitTestCase.assertTrue(superinterfacesOfE.contains(elementD.type)); | 273 JUnitTestCase.assertTrue(superinterfacesOfE.contains(classD.type)); |
| 266 JUnitTestCase.assertEquals(5, superinterfacesOfE.length); | 274 JUnitTestCase.assertEquals(5, superinterfacesOfE.length); |
| 267 } | 275 } |
| 268 void test_computeSuperinterfaceSet_singleInterfacePath() { | 276 void test_computeSuperinterfaceSet_singleInterfacePath() { |
| 269 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 277 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 270 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 278 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 271 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 279 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 272 elementB.interfaces = <InterfaceType> [elementA.type]; | 280 classB.interfaces = <InterfaceType> [classA.type]; |
| 273 elementC.interfaces = <InterfaceType> [elementB.type]; | 281 classC.interfaces = <InterfaceType> [classB.type]; |
| 274 Set<InterfaceType> superinterfacesOfA = InterfaceTypeImpl.computeSuperinterf
aceSet(elementA.type); | 282 Set<InterfaceType> superinterfacesOfA = InterfaceTypeImpl.computeSuperinterf
aceSet(classA.type); |
| 275 JUnitTestCase.assertNotNull(superinterfacesOfA); | 283 JUnitTestCase.assertNotNull(superinterfacesOfA); |
| 276 JUnitTestCase.assertTrue(superinterfacesOfA.contains(ElementFactory.object.t
ype)); | 284 JUnitTestCase.assertTrue(superinterfacesOfA.contains(ElementFactory.object.t
ype)); |
| 277 JUnitTestCase.assertEquals(1, superinterfacesOfA.length); | 285 JUnitTestCase.assertEquals(1, superinterfacesOfA.length); |
| 278 Set<InterfaceType> superinterfacesOfB = InterfaceTypeImpl.computeSuperinterf
aceSet(elementB.type); | 286 Set<InterfaceType> superinterfacesOfB = InterfaceTypeImpl.computeSuperinterf
aceSet(classB.type); |
| 279 JUnitTestCase.assertNotNull(superinterfacesOfB); | 287 JUnitTestCase.assertNotNull(superinterfacesOfB); |
| 280 JUnitTestCase.assertTrue(superinterfacesOfB.contains(ElementFactory.object.t
ype)); | 288 JUnitTestCase.assertTrue(superinterfacesOfB.contains(ElementFactory.object.t
ype)); |
| 281 JUnitTestCase.assertTrue(superinterfacesOfB.contains(elementA.type)); | 289 JUnitTestCase.assertTrue(superinterfacesOfB.contains(classA.type)); |
| 282 JUnitTestCase.assertEquals(2, superinterfacesOfB.length); | 290 JUnitTestCase.assertEquals(2, superinterfacesOfB.length); |
| 283 Set<InterfaceType> superinterfacesOfC = InterfaceTypeImpl.computeSuperinterf
aceSet(elementC.type); | 291 Set<InterfaceType> superinterfacesOfC = InterfaceTypeImpl.computeSuperinterf
aceSet(classC.type); |
| 284 JUnitTestCase.assertNotNull(superinterfacesOfC); | 292 JUnitTestCase.assertNotNull(superinterfacesOfC); |
| 285 JUnitTestCase.assertTrue(superinterfacesOfC.contains(ElementFactory.object.t
ype)); | 293 JUnitTestCase.assertTrue(superinterfacesOfC.contains(ElementFactory.object.t
ype)); |
| 286 JUnitTestCase.assertTrue(superinterfacesOfC.contains(elementA.type)); | 294 JUnitTestCase.assertTrue(superinterfacesOfC.contains(classA.type)); |
| 287 JUnitTestCase.assertTrue(superinterfacesOfC.contains(elementB.type)); | 295 JUnitTestCase.assertTrue(superinterfacesOfC.contains(classB.type)); |
| 288 JUnitTestCase.assertEquals(3, superinterfacesOfC.length); | 296 JUnitTestCase.assertEquals(3, superinterfacesOfC.length); |
| 289 } | 297 } |
| 290 void test_computeSuperinterfaceSet_singleSuperclassPath() { | 298 void test_computeSuperinterfaceSet_singleSuperclassPath() { |
| 291 ClassElement elementA = ElementFactory.classElement2("A", []); | 299 ClassElement classA = ElementFactory.classElement2("A", []); |
| 292 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 300 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 293 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 301 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 294 Set<InterfaceType> superinterfacesOfA = InterfaceTypeImpl.computeSuperinterf
aceSet(elementA.type); | 302 Set<InterfaceType> superinterfacesOfA = InterfaceTypeImpl.computeSuperinterf
aceSet(classA.type); |
| 295 JUnitTestCase.assertNotNull(superinterfacesOfA); | 303 JUnitTestCase.assertNotNull(superinterfacesOfA); |
| 296 JUnitTestCase.assertTrue(superinterfacesOfA.contains(ElementFactory.object.t
ype)); | 304 JUnitTestCase.assertTrue(superinterfacesOfA.contains(ElementFactory.object.t
ype)); |
| 297 JUnitTestCase.assertEquals(1, superinterfacesOfA.length); | 305 JUnitTestCase.assertEquals(1, superinterfacesOfA.length); |
| 298 Set<InterfaceType> superinterfacesOfB = InterfaceTypeImpl.computeSuperinterf
aceSet(elementB.type); | 306 Set<InterfaceType> superinterfacesOfB = InterfaceTypeImpl.computeSuperinterf
aceSet(classB.type); |
| 299 JUnitTestCase.assertNotNull(superinterfacesOfB); | 307 JUnitTestCase.assertNotNull(superinterfacesOfB); |
| 300 JUnitTestCase.assertTrue(superinterfacesOfB.contains(ElementFactory.object.t
ype)); | 308 JUnitTestCase.assertTrue(superinterfacesOfB.contains(ElementFactory.object.t
ype)); |
| 301 JUnitTestCase.assertTrue(superinterfacesOfB.contains(elementA.type)); | 309 JUnitTestCase.assertTrue(superinterfacesOfB.contains(classA.type)); |
| 302 JUnitTestCase.assertEquals(2, superinterfacesOfB.length); | 310 JUnitTestCase.assertEquals(2, superinterfacesOfB.length); |
| 303 Set<InterfaceType> superinterfacesOfC = InterfaceTypeImpl.computeSuperinterf
aceSet(elementC.type); | 311 Set<InterfaceType> superinterfacesOfC = InterfaceTypeImpl.computeSuperinterf
aceSet(classC.type); |
| 304 JUnitTestCase.assertNotNull(superinterfacesOfC); | 312 JUnitTestCase.assertNotNull(superinterfacesOfC); |
| 305 JUnitTestCase.assertTrue(superinterfacesOfC.contains(ElementFactory.object.t
ype)); | 313 JUnitTestCase.assertTrue(superinterfacesOfC.contains(ElementFactory.object.t
ype)); |
| 306 JUnitTestCase.assertTrue(superinterfacesOfC.contains(elementA.type)); | 314 JUnitTestCase.assertTrue(superinterfacesOfC.contains(classA.type)); |
| 307 JUnitTestCase.assertTrue(superinterfacesOfC.contains(elementB.type)); | 315 JUnitTestCase.assertTrue(superinterfacesOfC.contains(classB.type)); |
| 308 JUnitTestCase.assertEquals(3, superinterfacesOfC.length); | 316 JUnitTestCase.assertEquals(3, superinterfacesOfC.length); |
| 309 } | 317 } |
| 310 void test_creation() { | 318 void test_creation() { |
| 311 JUnitTestCase.assertNotNull(new InterfaceTypeImpl.con1(new ClassElementImpl(
ASTFactory.identifier2("A")))); | 319 JUnitTestCase.assertNotNull(new InterfaceTypeImpl.con1(ElementFactory.classE
lement2("A", []))); |
| 312 } | 320 } |
| 313 void test_getElement() { | 321 void test_getElement() { |
| 314 ClassElementImpl typeElement = new ClassElementImpl(ASTFactory.identifier2("
A")); | 322 ClassElementImpl typeElement = ElementFactory.classElement2("A", []); |
| 315 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement); | 323 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(typeElement); |
| 316 JUnitTestCase.assertEquals(typeElement, type.element); | 324 JUnitTestCase.assertEquals(typeElement, type.element); |
| 317 } | 325 } |
| 326 void test_getGetter_implemented() { |
| 327 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 328 String getterName = "g"; |
| 329 PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, f
alse, null); |
| 330 classA.accessors = <PropertyAccessorElement> [getterG]; |
| 331 InterfaceType typeA = classA.type; |
| 332 JUnitTestCase.assertSame(getterG, typeA.getGetter(getterName)); |
| 333 } |
| 334 void test_getGetter_parameterized() { |
| 335 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 336 Type2 typeE = classA.type.typeArguments[0]; |
| 337 String getterName = "g"; |
| 338 PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, f
alse, typeE); |
| 339 classA.accessors = <PropertyAccessorElement> [getterG]; |
| 340 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 341 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA); |
| 342 typeAI.typeArguments = <Type2> [typeI]; |
| 343 PropertyAccessorElement getter = typeAI.getGetter(getterName); |
| 344 JUnitTestCase.assertNotNull(getter); |
| 345 FunctionType getterType = getter.type; |
| 346 JUnitTestCase.assertSame(typeI, getterType.returnType); |
| 347 } |
| 348 void test_getGetter_unimplemented() { |
| 349 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 350 InterfaceType typeA = classA.type; |
| 351 JUnitTestCase.assertNull(typeA.getGetter("g")); |
| 352 } |
| 353 void test_getInterfaces_nonParameterized() { |
| 354 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 355 InterfaceType typeA = classA.type; |
| 356 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 357 InterfaceType typeB = classB.type; |
| 358 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 359 classC.interfaces = <InterfaceType> [typeA, typeB]; |
| 360 List<InterfaceType> interfaces7 = classC.type.interfaces; |
| 361 EngineTestCase.assertLength(2, interfaces7); |
| 362 if (identical(interfaces7[0], typeA)) { |
| 363 JUnitTestCase.assertSame(typeB, interfaces7[1]); |
| 364 } else { |
| 365 JUnitTestCase.assertSame(typeB, interfaces7[0]); |
| 366 JUnitTestCase.assertSame(typeA, interfaces7[1]); |
| 367 } |
| 368 } |
| 369 void test_getInterfaces_parameterized() { |
| 370 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 371 ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]); |
| 372 InterfaceType typeB = classB.type; |
| 373 InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA); |
| 374 typeAF.typeArguments = <Type2> [typeB.typeArguments[0]]; |
| 375 classB.interfaces = <InterfaceType> [typeAF]; |
| 376 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 377 InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB); |
| 378 typeBI.typeArguments = <Type2> [typeI]; |
| 379 List<InterfaceType> interfaces8 = typeBI.interfaces; |
| 380 EngineTestCase.assertLength(1, interfaces8); |
| 381 InterfaceType result = interfaces8[0]; |
| 382 JUnitTestCase.assertSame(classA, result.element); |
| 383 JUnitTestCase.assertSame(typeI, result.typeArguments[0]); |
| 384 } |
| 318 void test_getLeastUpperBound_directInterfaceCase() { | 385 void test_getLeastUpperBound_directInterfaceCase() { |
| 319 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 386 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 320 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 387 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 321 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 388 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 322 InterfaceType typeA = elementA.type; | 389 InterfaceType typeA = classA.type; |
| 323 InterfaceType typeB = elementB.type; | 390 InterfaceType typeB = classB.type; |
| 324 InterfaceType typeC = elementC.type; | 391 InterfaceType typeC = classC.type; |
| 325 elementB.interfaces = <InterfaceType> [typeA]; | 392 classB.interfaces = <InterfaceType> [typeA]; |
| 326 elementC.interfaces = <InterfaceType> [typeB]; | 393 classC.interfaces = <InterfaceType> [typeB]; |
| 327 JUnitTestCase.assertEquals(typeB, typeB.getLeastUpperBound(typeC)); | 394 JUnitTestCase.assertEquals(typeB, typeB.getLeastUpperBound(typeC)); |
| 328 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeB)); | 395 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeB)); |
| 329 } | 396 } |
| 330 void test_getLeastUpperBound_directSubclassCase() { | 397 void test_getLeastUpperBound_directSubclassCase() { |
| 331 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 398 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 332 ClassElementImpl elementB = ElementFactory.classElement("B", elementA.type,
[]); | 399 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 333 ClassElementImpl elementC = ElementFactory.classElement("C", elementB.type,
[]); | 400 ClassElementImpl classC = ElementFactory.classElement("C", classB.type, []); |
| 334 InterfaceType typeB = elementB.type; | 401 InterfaceType typeB = classB.type; |
| 335 InterfaceType typeC = elementC.type; | 402 InterfaceType typeC = classC.type; |
| 336 JUnitTestCase.assertEquals(typeB, typeB.getLeastUpperBound(typeC)); | 403 JUnitTestCase.assertEquals(typeB, typeB.getLeastUpperBound(typeC)); |
| 337 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeB)); | 404 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeB)); |
| 338 } | 405 } |
| 339 void test_getLeastUpperBound_functionType() { | 406 void test_getLeastUpperBound_functionType() { |
| 340 Type2 interfaceType = ElementFactory.classElement2("A", []).type; | 407 Type2 interfaceType = ElementFactory.classElement2("A", []).type; |
| 341 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier2("f"))); | 408 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier3("f"))); |
| 342 JUnitTestCase.assertNull(interfaceType.getLeastUpperBound(functionType)); | 409 JUnitTestCase.assertNull(interfaceType.getLeastUpperBound(functionType)); |
| 343 } | 410 } |
| 411 void test_getLeastUpperBound_ignoreTypeParameters() { |
| 412 InterfaceType listType6 = _typeProvider.listType; |
| 413 InterfaceType intType11 = _typeProvider.intType; |
| 414 InterfaceType doubleType4 = _typeProvider.doubleType; |
| 415 InterfaceType listOfIntType = listType6.substitute5(<Type2> [intType11]); |
| 416 InterfaceType listOfDoubleType = listType6.substitute5(<Type2> [doubleType4]
); |
| 417 JUnitTestCase.assertEquals(listType6, listOfIntType.getLeastUpperBound(listO
fDoubleType)); |
| 418 } |
| 344 void test_getLeastUpperBound_mixinCase() { | 419 void test_getLeastUpperBound_mixinCase() { |
| 345 ClassElement elementA = ElementFactory.classElement2("A", []); | 420 ClassElement classA = ElementFactory.classElement2("A", []); |
| 346 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 421 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 347 ClassElement elementC = ElementFactory.classElement("C", elementA.type, []); | 422 ClassElement classC = ElementFactory.classElement("C", classA.type, []); |
| 348 ClassElementImpl elementD = ElementFactory.classElement("D", elementB.type,
[]); | 423 ClassElementImpl classD = ElementFactory.classElement("D", classB.type, []); |
| 349 InterfaceType typeA = elementA.type; | 424 InterfaceType typeA = classA.type; |
| 350 InterfaceType typeC = elementC.type; | 425 InterfaceType typeC = classC.type; |
| 351 InterfaceType typeD = elementD.type; | 426 InterfaceType typeD = classD.type; |
| 352 elementD.mixins = <InterfaceType> [ElementFactory.classElement2("M", []).typ
e, ElementFactory.classElement2("N", []).type, ElementFactory.classElement2("O",
[]).type, ElementFactory.classElement2("P", []).type]; | 427 classD.mixins = <InterfaceType> [ElementFactory.classElement2("M", []).type,
ElementFactory.classElement2("N", []).type, ElementFactory.classElement2("O", [
]).type, ElementFactory.classElement2("P", []).type]; |
| 353 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeC)); | 428 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeC)); |
| 354 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeD)); | 429 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeD)); |
| 355 } | 430 } |
| 356 void test_getLeastUpperBound_null() { | 431 void test_getLeastUpperBound_null() { |
| 357 Type2 interfaceType = ElementFactory.classElement2("A", []).type; | 432 Type2 interfaceType = ElementFactory.classElement2("A", []).type; |
| 358 JUnitTestCase.assertNull(interfaceType.getLeastUpperBound(null)); | 433 JUnitTestCase.assertNull(interfaceType.getLeastUpperBound(null)); |
| 359 } | 434 } |
| 360 void test_getLeastUpperBound_object() { | 435 void test_getLeastUpperBound_object() { |
| 361 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 436 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 362 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 437 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 363 InterfaceType typeA = elementA.type; | 438 InterfaceType typeA = classA.type; |
| 364 InterfaceType typeB = elementB.type; | 439 InterfaceType typeB = classB.type; |
| 365 Type2 typeObject = typeA.element.supertype; | 440 Type2 typeObject = typeA.element.supertype; |
| 366 JUnitTestCase.assertNull(((typeObject.element as ClassElement)).supertype); | 441 JUnitTestCase.assertNull(((typeObject.element as ClassElement)).supertype); |
| 367 JUnitTestCase.assertEquals(typeObject, typeB.element.supertype); | 442 JUnitTestCase.assertEquals(typeObject, typeB.element.supertype); |
| 368 JUnitTestCase.assertEquals(typeObject, typeA.getLeastUpperBound(typeB)); | 443 JUnitTestCase.assertEquals(typeObject, typeA.getLeastUpperBound(typeB)); |
| 369 } | 444 } |
| 370 void test_getLeastUpperBound_self() { | 445 void test_getLeastUpperBound_self() { |
| 371 ClassElement elementA = ElementFactory.classElement2("A", []); | 446 ClassElement classA = ElementFactory.classElement2("A", []); |
| 372 InterfaceType typeA = elementA.type; | 447 InterfaceType typeA = classA.type; |
| 373 JUnitTestCase.assertEquals(typeA, typeA.getLeastUpperBound(typeA)); | 448 JUnitTestCase.assertEquals(typeA, typeA.getLeastUpperBound(typeA)); |
| 374 } | 449 } |
| 375 void test_getLeastUpperBound_sharedSuperclass1() { | 450 void test_getLeastUpperBound_sharedSuperclass1() { |
| 376 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 451 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 377 ClassElementImpl elementB = ElementFactory.classElement("B", elementA.type,
[]); | 452 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 378 ClassElementImpl elementC = ElementFactory.classElement("C", elementA.type,
[]); | 453 ClassElementImpl classC = ElementFactory.classElement("C", classA.type, []); |
| 379 InterfaceType typeA = elementA.type; | 454 InterfaceType typeA = classA.type; |
| 380 InterfaceType typeB = elementB.type; | 455 InterfaceType typeB = classB.type; |
| 381 InterfaceType typeC = elementC.type; | 456 InterfaceType typeC = classC.type; |
| 382 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); | 457 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); |
| 383 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); | 458 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); |
| 384 } | 459 } |
| 385 void test_getLeastUpperBound_sharedSuperclass2() { | 460 void test_getLeastUpperBound_sharedSuperclass2() { |
| 386 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 461 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 387 ClassElementImpl elementB = ElementFactory.classElement("B", elementA.type,
[]); | 462 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 388 ClassElementImpl elementC = ElementFactory.classElement("C", elementA.type,
[]); | 463 ClassElementImpl classC = ElementFactory.classElement("C", classA.type, []); |
| 389 ClassElementImpl elementD = ElementFactory.classElement("D", elementC.type,
[]); | 464 ClassElementImpl classD = ElementFactory.classElement("D", classC.type, []); |
| 390 InterfaceType typeA = elementA.type; | 465 InterfaceType typeA = classA.type; |
| 391 InterfaceType typeB = elementB.type; | 466 InterfaceType typeB = classB.type; |
| 392 InterfaceType typeD = elementD.type; | 467 InterfaceType typeD = classD.type; |
| 393 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeD)); | 468 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeD)); |
| 394 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeB)); | 469 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeB)); |
| 395 } | 470 } |
| 396 void test_getLeastUpperBound_sharedSuperclass3() { | 471 void test_getLeastUpperBound_sharedSuperclass3() { |
| 397 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 472 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 398 ClassElementImpl elementB = ElementFactory.classElement("B", elementA.type,
[]); | 473 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 399 ClassElementImpl elementC = ElementFactory.classElement("C", elementB.type,
[]); | 474 ClassElementImpl classC = ElementFactory.classElement("C", classB.type, []); |
| 400 ClassElementImpl elementD = ElementFactory.classElement("D", elementB.type,
[]); | 475 ClassElementImpl classD = ElementFactory.classElement("D", classB.type, []); |
| 401 InterfaceType typeB = elementB.type; | 476 InterfaceType typeB = classB.type; |
| 402 InterfaceType typeC = elementC.type; | 477 InterfaceType typeC = classC.type; |
| 403 InterfaceType typeD = elementD.type; | 478 InterfaceType typeD = classD.type; |
| 404 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeD)); | 479 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeD)); |
| 405 JUnitTestCase.assertEquals(typeB, typeD.getLeastUpperBound(typeC)); | 480 JUnitTestCase.assertEquals(typeB, typeD.getLeastUpperBound(typeC)); |
| 406 } | 481 } |
| 407 void test_getLeastUpperBound_sharedSuperclass4() { | 482 void test_getLeastUpperBound_sharedSuperclass4() { |
| 408 ClassElement elementA = ElementFactory.classElement2("A", []); | 483 ClassElement classA = ElementFactory.classElement2("A", []); |
| 409 ClassElement elementA2 = ElementFactory.classElement2("A2", []); | 484 ClassElement classA2 = ElementFactory.classElement2("A2", []); |
| 410 ClassElement elementA3 = ElementFactory.classElement2("A3", []); | 485 ClassElement classA3 = ElementFactory.classElement2("A3", []); |
| 411 ClassElementImpl elementB = ElementFactory.classElement("B", elementA.type,
[]); | 486 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 412 ClassElementImpl elementC = ElementFactory.classElement("C", elementA.type,
[]); | 487 ClassElementImpl classC = ElementFactory.classElement("C", classA.type, []); |
| 413 InterfaceType typeA = elementA.type; | 488 InterfaceType typeA = classA.type; |
| 414 InterfaceType typeA2 = elementA2.type; | 489 InterfaceType typeA2 = classA2.type; |
| 415 InterfaceType typeA3 = elementA3.type; | 490 InterfaceType typeA3 = classA3.type; |
| 416 InterfaceType typeB = elementB.type; | 491 InterfaceType typeB = classB.type; |
| 417 InterfaceType typeC = elementC.type; | 492 InterfaceType typeC = classC.type; |
| 418 elementB.interfaces = <InterfaceType> [typeA2]; | 493 classB.interfaces = <InterfaceType> [typeA2]; |
| 419 elementC.interfaces = <InterfaceType> [typeA3]; | 494 classC.interfaces = <InterfaceType> [typeA3]; |
| 420 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); | 495 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); |
| 421 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); | 496 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); |
| 422 } | 497 } |
| 423 void test_getLeastUpperBound_sharedSuperinterface1() { | 498 void test_getLeastUpperBound_sharedSuperinterface1() { |
| 424 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 499 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 425 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 500 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 426 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 501 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 427 InterfaceType typeA = elementA.type; | 502 InterfaceType typeA = classA.type; |
| 428 InterfaceType typeB = elementB.type; | 503 InterfaceType typeB = classB.type; |
| 429 InterfaceType typeC = elementC.type; | 504 InterfaceType typeC = classC.type; |
| 430 elementB.interfaces = <InterfaceType> [typeA]; | 505 classB.interfaces = <InterfaceType> [typeA]; |
| 431 elementC.interfaces = <InterfaceType> [typeA]; | 506 classC.interfaces = <InterfaceType> [typeA]; |
| 432 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); | 507 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); |
| 433 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); | 508 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); |
| 434 } | 509 } |
| 435 void test_getLeastUpperBound_sharedSuperinterface2() { | 510 void test_getLeastUpperBound_sharedSuperinterface2() { |
| 436 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 511 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 437 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 512 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 438 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 513 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 439 ClassElementImpl elementD = ElementFactory.classElement2("D", []); | 514 ClassElementImpl classD = ElementFactory.classElement2("D", []); |
| 440 InterfaceType typeA = elementA.type; | 515 InterfaceType typeA = classA.type; |
| 441 InterfaceType typeB = elementB.type; | 516 InterfaceType typeB = classB.type; |
| 442 InterfaceType typeC = elementC.type; | 517 InterfaceType typeC = classC.type; |
| 443 InterfaceType typeD = elementD.type; | 518 InterfaceType typeD = classD.type; |
| 444 elementB.interfaces = <InterfaceType> [typeA]; | 519 classB.interfaces = <InterfaceType> [typeA]; |
| 445 elementC.interfaces = <InterfaceType> [typeA]; | 520 classC.interfaces = <InterfaceType> [typeA]; |
| 446 elementD.interfaces = <InterfaceType> [typeC]; | 521 classD.interfaces = <InterfaceType> [typeC]; |
| 447 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeD)); | 522 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeD)); |
| 448 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeB)); | 523 JUnitTestCase.assertEquals(typeA, typeD.getLeastUpperBound(typeB)); |
| 449 } | 524 } |
| 450 void test_getLeastUpperBound_sharedSuperinterface3() { | 525 void test_getLeastUpperBound_sharedSuperinterface3() { |
| 451 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 526 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 452 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 527 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 453 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 528 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 454 ClassElementImpl elementD = ElementFactory.classElement2("D", []); | 529 ClassElementImpl classD = ElementFactory.classElement2("D", []); |
| 455 InterfaceType typeA = elementA.type; | 530 InterfaceType typeA = classA.type; |
| 456 InterfaceType typeB = elementB.type; | 531 InterfaceType typeB = classB.type; |
| 457 InterfaceType typeC = elementC.type; | 532 InterfaceType typeC = classC.type; |
| 458 InterfaceType typeD = elementD.type; | 533 InterfaceType typeD = classD.type; |
| 459 elementB.interfaces = <InterfaceType> [typeA]; | 534 classB.interfaces = <InterfaceType> [typeA]; |
| 460 elementC.interfaces = <InterfaceType> [typeB]; | 535 classC.interfaces = <InterfaceType> [typeB]; |
| 461 elementD.interfaces = <InterfaceType> [typeB]; | 536 classD.interfaces = <InterfaceType> [typeB]; |
| 462 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeD)); | 537 JUnitTestCase.assertEquals(typeB, typeC.getLeastUpperBound(typeD)); |
| 463 JUnitTestCase.assertEquals(typeB, typeD.getLeastUpperBound(typeC)); | 538 JUnitTestCase.assertEquals(typeB, typeD.getLeastUpperBound(typeC)); |
| 464 } | 539 } |
| 465 void test_getLeastUpperBound_sharedSuperinterface4() { | 540 void test_getLeastUpperBound_sharedSuperinterface4() { |
| 466 ClassElement elementA = ElementFactory.classElement2("A", []); | 541 ClassElement classA = ElementFactory.classElement2("A", []); |
| 467 ClassElement elementA2 = ElementFactory.classElement2("A2", []); | 542 ClassElement classA2 = ElementFactory.classElement2("A2", []); |
| 468 ClassElement elementA3 = ElementFactory.classElement2("A3", []); | 543 ClassElement classA3 = ElementFactory.classElement2("A3", []); |
| 469 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 544 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 470 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 545 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 471 InterfaceType typeA = elementA.type; | 546 InterfaceType typeA = classA.type; |
| 472 InterfaceType typeA2 = elementA2.type; | 547 InterfaceType typeA2 = classA2.type; |
| 473 InterfaceType typeA3 = elementA3.type; | 548 InterfaceType typeA3 = classA3.type; |
| 474 InterfaceType typeB = elementB.type; | 549 InterfaceType typeB = classB.type; |
| 475 InterfaceType typeC = elementC.type; | 550 InterfaceType typeC = classC.type; |
| 476 elementB.interfaces = <InterfaceType> [typeA, typeA2]; | 551 classB.interfaces = <InterfaceType> [typeA, typeA2]; |
| 477 elementC.interfaces = <InterfaceType> [typeA, typeA3]; | 552 classC.interfaces = <InterfaceType> [typeA, typeA3]; |
| 478 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); | 553 JUnitTestCase.assertEquals(typeA, typeB.getLeastUpperBound(typeC)); |
| 479 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); | 554 JUnitTestCase.assertEquals(typeA, typeC.getLeastUpperBound(typeB)); |
| 480 } | 555 } |
| 481 void test_getTypeArguments() { | 556 void test_getMethod_implemented() { |
| 482 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(new ClassElementImpl(AST
Factory.identifier2("A"))); | 557 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 483 EngineTestCase.assertLength(0, type.typeArguments); | 558 String methodName = "m"; |
| 559 MethodElementImpl methodM = ElementFactory.methodElement(methodName, null, [
]); |
| 560 classA.methods = <MethodElement> [methodM]; |
| 561 InterfaceType typeA = classA.type; |
| 562 JUnitTestCase.assertSame(methodM, typeA.getMethod(methodName)); |
| 563 } |
| 564 void test_getMethod_parameterized() { |
| 565 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 566 Type2 typeE = classA.type.typeArguments[0]; |
| 567 String methodName = "m"; |
| 568 MethodElementImpl methodM = ElementFactory.methodElement(methodName, typeE,
[typeE]); |
| 569 classA.methods = <MethodElement> [methodM]; |
| 570 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 571 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA); |
| 572 typeAI.typeArguments = <Type2> [typeI]; |
| 573 MethodElement method = typeAI.getMethod(methodName); |
| 574 JUnitTestCase.assertNotNull(method); |
| 575 FunctionType methodType = method.type; |
| 576 JUnitTestCase.assertSame(typeI, methodType.returnType); |
| 577 List<Type2> parameterTypes = methodType.normalParameterTypes; |
| 578 EngineTestCase.assertLength(1, parameterTypes); |
| 579 JUnitTestCase.assertSame(typeI, parameterTypes[0]); |
| 580 } |
| 581 void test_getMethod_unimplemented() { |
| 582 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 583 InterfaceType typeA = classA.type; |
| 584 JUnitTestCase.assertNull(typeA.getMethod("m")); |
| 585 } |
| 586 void test_getMixins_nonParameterized() { |
| 587 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 588 InterfaceType typeA = classA.type; |
| 589 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 590 InterfaceType typeB = classB.type; |
| 591 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 592 classC.mixins = <InterfaceType> [typeA, typeB]; |
| 593 List<InterfaceType> interfaces = classC.type.mixins; |
| 594 EngineTestCase.assertLength(2, interfaces); |
| 595 if (identical(interfaces[0], typeA)) { |
| 596 JUnitTestCase.assertSame(typeB, interfaces[1]); |
| 597 } else { |
| 598 JUnitTestCase.assertSame(typeB, interfaces[0]); |
| 599 JUnitTestCase.assertSame(typeA, interfaces[1]); |
| 600 } |
| 601 } |
| 602 void test_getMixins_parameterized() { |
| 603 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 604 ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]); |
| 605 InterfaceType typeB = classB.type; |
| 606 InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA); |
| 607 typeAF.typeArguments = <Type2> [typeB.typeArguments[0]]; |
| 608 classB.mixins = <InterfaceType> [typeAF]; |
| 609 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 610 InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB); |
| 611 typeBI.typeArguments = <Type2> [typeI]; |
| 612 List<InterfaceType> interfaces = typeBI.mixins; |
| 613 EngineTestCase.assertLength(1, interfaces); |
| 614 InterfaceType result = interfaces[0]; |
| 615 JUnitTestCase.assertSame(classA, result.element); |
| 616 JUnitTestCase.assertSame(typeI, result.typeArguments[0]); |
| 617 } |
| 618 void test_getSetter_implemented() { |
| 619 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 620 String setterName = "s"; |
| 621 PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, f
alse, null); |
| 622 classA.accessors = <PropertyAccessorElement> [setterS]; |
| 623 InterfaceType typeA = classA.type; |
| 624 JUnitTestCase.assertSame(setterS, typeA.getSetter(setterName)); |
| 625 } |
| 626 void test_getSetter_parameterized() { |
| 627 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 628 Type2 typeE = classA.type.typeArguments[0]; |
| 629 String setterName = "s"; |
| 630 PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, f
alse, typeE); |
| 631 classA.accessors = <PropertyAccessorElement> [setterS]; |
| 632 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 633 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA); |
| 634 typeAI.typeArguments = <Type2> [typeI]; |
| 635 PropertyAccessorElement setter = typeAI.getSetter(setterName); |
| 636 JUnitTestCase.assertNotNull(setter); |
| 637 FunctionType setterType = setter.type; |
| 638 List<Type2> parameterTypes = setterType.normalParameterTypes; |
| 639 EngineTestCase.assertLength(1, parameterTypes); |
| 640 JUnitTestCase.assertSame(typeI, parameterTypes[0]); |
| 641 } |
| 642 void test_getSetter_unimplemented() { |
| 643 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 644 InterfaceType typeA = classA.type; |
| 645 JUnitTestCase.assertNull(typeA.getSetter("s")); |
| 646 } |
| 647 void test_getSuperclass_nonParameterized() { |
| 648 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 649 InterfaceType typeA = classA.type; |
| 650 ClassElementImpl classB = ElementFactory.classElement("B", typeA, []); |
| 651 InterfaceType typeB = classB.type; |
| 652 JUnitTestCase.assertSame(typeA, typeB.superclass); |
| 653 } |
| 654 void test_getSuperclass_parameterized() { |
| 655 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 656 ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]); |
| 657 InterfaceType typeB = classB.type; |
| 658 InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA); |
| 659 typeAF.typeArguments = <Type2> [typeB.typeArguments[0]]; |
| 660 classB.supertype = typeAF; |
| 661 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 662 InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB); |
| 663 typeBI.typeArguments = <Type2> [typeI]; |
| 664 InterfaceType superclass6 = typeBI.superclass; |
| 665 JUnitTestCase.assertSame(classA, superclass6.element); |
| 666 JUnitTestCase.assertSame(typeI, superclass6.typeArguments[0]); |
| 667 } |
| 668 void test_getTypeArguments_empty() { |
| 669 InterfaceType type32 = ElementFactory.classElement2("A", []).type; |
| 670 EngineTestCase.assertLength(0, type32.typeArguments); |
| 484 } | 671 } |
| 485 void test_isDirectSupertypeOf_extends() { | 672 void test_isDirectSupertypeOf_extends() { |
| 486 ClassElement elementA = ElementFactory.classElement2("A", []); | 673 ClassElement classA = ElementFactory.classElement2("A", []); |
| 487 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 674 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 488 InterfaceTypeImpl typeA = new InterfaceTypeImpl.con1(elementA); | 675 InterfaceType typeA = classA.type; |
| 489 InterfaceTypeImpl typeB = new InterfaceTypeImpl.con1(elementB); | 676 InterfaceType typeB = classB.type; |
| 490 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); | 677 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); |
| 491 } | 678 } |
| 492 void test_isDirectSupertypeOf_false() { | 679 void test_isDirectSupertypeOf_false() { |
| 493 ClassElement elementA = ElementFactory.classElement2("A", []); | 680 ClassElement classA = ElementFactory.classElement2("A", []); |
| 494 ClassElement elementB = ElementFactory.classElement2("B", []); | 681 ClassElement classB = ElementFactory.classElement2("B", []); |
| 495 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 682 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 496 InterfaceTypeImpl typeA = new InterfaceTypeImpl.con1(elementA); | 683 InterfaceType typeA = classA.type; |
| 497 InterfaceTypeImpl typeC = new InterfaceTypeImpl.con1(elementC); | 684 InterfaceType typeC = classC.type; |
| 498 JUnitTestCase.assertFalse(typeA.isDirectSupertypeOf(typeC)); | 685 JUnitTestCase.assertFalse(typeA.isDirectSupertypeOf(typeC)); |
| 499 } | 686 } |
| 500 void test_isDirectSupertypeOf_implements() { | 687 void test_isDirectSupertypeOf_implements() { |
| 501 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 688 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 502 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 689 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 503 elementB.interfaces = <InterfaceType> [elementA.type]; | 690 InterfaceType typeA = classA.type; |
| 504 InterfaceTypeImpl typeA = new InterfaceTypeImpl.con1(elementA); | 691 InterfaceType typeB = classB.type; |
| 505 InterfaceTypeImpl typeB = new InterfaceTypeImpl.con1(elementB); | 692 classB.interfaces = <InterfaceType> [typeA]; |
| 506 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); | 693 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); |
| 507 } | 694 } |
| 508 void test_isDirectSupertypeOf_with() { | 695 void test_isDirectSupertypeOf_with() { |
| 509 ClassElementImpl elementA = ElementFactory.classElement2("A", []); | 696 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 510 ClassElementImpl elementB = ElementFactory.classElement2("B", []); | 697 ClassElementImpl classB = ElementFactory.classElement2("B", []); |
| 511 elementB.mixins = <InterfaceType> [elementA.type]; | 698 InterfaceType typeA = classA.type; |
| 512 InterfaceTypeImpl typeA = new InterfaceTypeImpl.con1(elementA); | 699 InterfaceType typeB = classB.type; |
| 513 InterfaceTypeImpl typeB = new InterfaceTypeImpl.con1(elementB); | 700 classB.mixins = <InterfaceType> [typeA]; |
| 514 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); | 701 JUnitTestCase.assertTrue(typeA.isDirectSupertypeOf(typeB)); |
| 515 } | 702 } |
| 516 void test_isMoreSpecificThan_bottom() { | 703 void test_isMoreSpecificThan_bottom() { |
| 517 Type2 type25 = ElementFactory.classElement2("A", []).type; | 704 Type2 type33 = ElementFactory.classElement2("A", []).type; |
| 518 JUnitTestCase.assertTrue(BottomTypeImpl.instance.isMoreSpecificThan(type25))
; | 705 JUnitTestCase.assertTrue(BottomTypeImpl.instance.isMoreSpecificThan(type33))
; |
| 519 } | 706 } |
| 520 void test_isMoreSpecificThan_covariance() { | 707 void test_isMoreSpecificThan_covariance() { |
| 521 ClassElement elementA = ElementFactory.classElement2("A", ["E"]); | 708 ClassElement classA = ElementFactory.classElement2("A", ["E"]); |
| 522 ClassElement elementI = ElementFactory.classElement2("I", []); | 709 ClassElement classI = ElementFactory.classElement2("I", []); |
| 523 ClassElement elementJ = ElementFactory.classElement("J", elementI.type, []); | 710 ClassElement classJ = ElementFactory.classElement("J", classI.type, []); |
| 524 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(elementA); | 711 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA); |
| 525 InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(elementA); | 712 InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(classA); |
| 526 typeAI.typeArguments = <Type2> [elementI.type]; | 713 typeAI.typeArguments = <Type2> [classI.type]; |
| 527 typeAJ.typeArguments = <Type2> [elementJ.type]; | 714 typeAJ.typeArguments = <Type2> [classJ.type]; |
| 528 JUnitTestCase.assertTrue(typeAJ.isMoreSpecificThan(typeAI)); | 715 JUnitTestCase.assertTrue(typeAJ.isMoreSpecificThan(typeAI)); |
| 529 JUnitTestCase.assertFalse(typeAI.isMoreSpecificThan(typeAJ)); | 716 JUnitTestCase.assertFalse(typeAI.isMoreSpecificThan(typeAJ)); |
| 530 } | 717 } |
| 531 void test_isMoreSpecificThan_directSupertype() { | 718 void test_isMoreSpecificThan_directSupertype() { |
| 532 ClassElement elementA = ElementFactory.classElement2("A", []); | 719 ClassElement classA = ElementFactory.classElement2("A", []); |
| 533 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 720 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 534 InterfaceType typeA = elementA.type; | 721 InterfaceType typeA = classA.type; |
| 535 InterfaceType typeB = elementB.type; | 722 InterfaceType typeB = classB.type; |
| 536 JUnitTestCase.assertTrue(typeB.isMoreSpecificThan(typeA)); | 723 JUnitTestCase.assertTrue(typeB.isMoreSpecificThan(typeA)); |
| 537 JUnitTestCase.assertFalse(typeA.isMoreSpecificThan(typeB)); | 724 JUnitTestCase.assertFalse(typeA.isMoreSpecificThan(typeB)); |
| 538 } | 725 } |
| 539 void test_isMoreSpecificThan_dynamic() { | 726 void test_isMoreSpecificThan_dynamic() { |
| 540 InterfaceType type26 = ElementFactory.classElement2("A", []).type; | 727 InterfaceType type34 = ElementFactory.classElement2("A", []).type; |
| 541 JUnitTestCase.assertTrue(type26.isMoreSpecificThan(DynamicTypeImpl.instance)
); | 728 JUnitTestCase.assertTrue(type34.isMoreSpecificThan(DynamicTypeImpl.instance)
); |
| 542 } | 729 } |
| 543 void test_isMoreSpecificThan_indirectSupertype() { | 730 void test_isMoreSpecificThan_indirectSupertype() { |
| 544 ClassElement elementA = ElementFactory.classElement2("A", []); | 731 ClassElement classA = ElementFactory.classElement2("A", []); |
| 545 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 732 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 546 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 733 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 547 InterfaceType typeA = elementA.type; | 734 InterfaceType typeA = classA.type; |
| 548 InterfaceType typeC = elementC.type; | 735 InterfaceType typeC = classC.type; |
| 549 JUnitTestCase.assertTrue(typeC.isMoreSpecificThan(typeA)); | 736 JUnitTestCase.assertTrue(typeC.isMoreSpecificThan(typeA)); |
| 550 } | 737 } |
| 551 void test_isMoreSpecificThan_self() { | 738 void test_isMoreSpecificThan_self() { |
| 552 InterfaceType type27 = ElementFactory.classElement2("A", []).type; | 739 InterfaceType type35 = ElementFactory.classElement2("A", []).type; |
| 553 JUnitTestCase.assertTrue(type27.isMoreSpecificThan(type27)); | 740 JUnitTestCase.assertTrue(type35.isMoreSpecificThan(type35)); |
| 554 } | 741 } |
| 555 void test_isSubtypeOf_directSubtype() { | 742 void test_isSubtypeOf_directSubtype() { |
| 556 ClassElement elementA = ElementFactory.classElement2("A", []); | 743 ClassElement classA = ElementFactory.classElement2("A", []); |
| 557 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 744 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 558 InterfaceType typeA = elementA.type; | 745 InterfaceType typeA = classA.type; |
| 559 InterfaceType typeB = elementB.type; | 746 InterfaceType typeB = classB.type; |
| 560 JUnitTestCase.assertTrue(typeB.isSubtypeOf(typeA)); | 747 JUnitTestCase.assertTrue(typeB.isSubtypeOf(typeA)); |
| 561 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeB)); | 748 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeB)); |
| 562 } | 749 } |
| 563 void test_isSubtypeOf_dynamic() { | 750 void test_isSubtypeOf_dynamic() { |
| 564 ClassElement elementA = ElementFactory.classElement2("A", []); | 751 ClassElement classA = ElementFactory.classElement2("A", []); |
| 565 InterfaceType typeA = elementA.type; | 752 InterfaceType typeA = classA.type; |
| 566 Type2 dynamicType = DynamicTypeImpl.instance; | 753 Type2 dynamicType = DynamicTypeImpl.instance; |
| 567 JUnitTestCase.assertFalse(dynamicType.isSubtypeOf(typeA)); | 754 JUnitTestCase.assertFalse(dynamicType.isSubtypeOf(typeA)); |
| 568 JUnitTestCase.assertTrue(typeA.isSubtypeOf(dynamicType)); | 755 JUnitTestCase.assertTrue(typeA.isSubtypeOf(dynamicType)); |
| 569 } | 756 } |
| 570 void test_isSubtypeOf_indirectSubtype() { | 757 void test_isSubtypeOf_indirectSubtype() { |
| 571 ClassElement elementA = ElementFactory.classElement2("A", []); | 758 ClassElement classA = ElementFactory.classElement2("A", []); |
| 572 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 759 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 573 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 760 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 574 InterfaceType typeA = elementA.type; | 761 InterfaceType typeA = classA.type; |
| 575 InterfaceType typeC = elementC.type; | 762 InterfaceType typeC = classC.type; |
| 576 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeA)); | 763 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeA)); |
| 577 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); | 764 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); |
| 578 } | 765 } |
| 579 void test_isSubtypeOf_interface() { | 766 void test_isSubtypeOf_interface() { |
| 580 ClassElement elementA = ElementFactory.classElement2("A", []); | 767 ClassElement classA = ElementFactory.classElement2("A", []); |
| 581 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 768 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 582 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 769 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 583 InterfaceType typeObject = elementA.supertype; | 770 InterfaceType typeObject = classA.supertype; |
| 584 InterfaceType typeA = elementA.type; | 771 InterfaceType typeA = classA.type; |
| 585 InterfaceType typeB = elementB.type; | 772 InterfaceType typeB = classB.type; |
| 586 InterfaceType typeC = elementC.type; | 773 InterfaceType typeC = classC.type; |
| 587 elementC.interfaces = <InterfaceType> [typeB]; | 774 classC.interfaces = <InterfaceType> [typeB]; |
| 588 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeB)); | 775 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeB)); |
| 589 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeObject)); | 776 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeObject)); |
| 590 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeA)); | 777 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeA)); |
| 591 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); | 778 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); |
| 592 } | 779 } |
| 593 void test_isSubtypeOf_mixins() { | 780 void test_isSubtypeOf_mixins() { |
| 594 ClassElement elementA = ElementFactory.classElement2("A", []); | 781 ClassElement classA = ElementFactory.classElement2("A", []); |
| 595 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 782 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 596 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 783 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 597 InterfaceType typeObject = elementA.supertype; | 784 InterfaceType typeObject = classA.supertype; |
| 598 InterfaceType typeA = elementA.type; | 785 InterfaceType typeA = classA.type; |
| 599 InterfaceType typeB = elementB.type; | 786 InterfaceType typeB = classB.type; |
| 600 InterfaceType typeC = elementC.type; | 787 InterfaceType typeC = classC.type; |
| 601 elementC.mixins = <InterfaceType> [typeB]; | 788 classC.mixins = <InterfaceType> [typeB]; |
| 602 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeB)); | 789 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeB)); |
| 603 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeObject)); | 790 JUnitTestCase.assertTrue(typeC.isSubtypeOf(typeObject)); |
| 604 JUnitTestCase.assertFalse(typeC.isSubtypeOf(typeA)); | 791 JUnitTestCase.assertFalse(typeC.isSubtypeOf(typeA)); |
| 605 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); | 792 JUnitTestCase.assertFalse(typeA.isSubtypeOf(typeC)); |
| 606 } | 793 } |
| 607 void test_isSubtypeOf_object() { | 794 void test_isSubtypeOf_object() { |
| 608 ClassElement elementA = ElementFactory.classElement2("A", []); | 795 ClassElement classA = ElementFactory.classElement2("A", []); |
| 609 InterfaceType typeA = elementA.type; | 796 InterfaceType typeA = classA.type; |
| 610 InterfaceType typeObject = elementA.supertype; | 797 InterfaceType typeObject = classA.supertype; |
| 611 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeObject)); | 798 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeObject)); |
| 612 JUnitTestCase.assertFalse(typeObject.isSubtypeOf(typeA)); | 799 JUnitTestCase.assertFalse(typeObject.isSubtypeOf(typeA)); |
| 613 } | 800 } |
| 614 void test_isSubtypeOf_self() { | 801 void test_isSubtypeOf_self() { |
| 615 ClassElement elementA = ElementFactory.classElement2("A", []); | 802 ClassElement classA = ElementFactory.classElement2("A", []); |
| 616 InterfaceType typeA = elementA.type; | 803 InterfaceType typeA = classA.type; |
| 617 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeA)); | 804 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeA)); |
| 618 } | 805 } |
| 619 void test_isSubtypeOf_typeArguments() { | 806 void test_isSubtypeOf_typeArguments() { |
| 620 ClassElement elementA = ElementFactory.classElement2("A", ["E"]); | 807 ClassElement classA = ElementFactory.classElement2("A", ["E"]); |
| 621 ClassElement elementI = ElementFactory.classElement2("I", []); | 808 ClassElement classI = ElementFactory.classElement2("I", []); |
| 622 ClassElement elementJ = ElementFactory.classElement("J", elementI.type, []); | 809 ClassElement classJ = ElementFactory.classElement("J", classI.type, []); |
| 623 ClassElement elementK = ElementFactory.classElement2("K", []); | 810 ClassElement classK = ElementFactory.classElement2("K", []); |
| 624 InterfaceType typeA = elementA.type; | 811 InterfaceType typeA = classA.type; |
| 625 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(elementA); | 812 InterfaceTypeImpl typeAI = new InterfaceTypeImpl.con1(classA); |
| 626 InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(elementA); | 813 InterfaceTypeImpl typeAJ = new InterfaceTypeImpl.con1(classA); |
| 627 InterfaceTypeImpl typeAK = new InterfaceTypeImpl.con1(elementA); | 814 InterfaceTypeImpl typeAK = new InterfaceTypeImpl.con1(classA); |
| 628 typeAI.typeArguments = <Type2> [elementI.type]; | 815 typeAI.typeArguments = <Type2> [classI.type]; |
| 629 typeAJ.typeArguments = <Type2> [elementJ.type]; | 816 typeAJ.typeArguments = <Type2> [classJ.type]; |
| 630 typeAK.typeArguments = <Type2> [elementK.type]; | 817 typeAK.typeArguments = <Type2> [classK.type]; |
| 631 JUnitTestCase.assertTrue(typeAJ.isSubtypeOf(typeAI)); | 818 JUnitTestCase.assertTrue(typeAJ.isSubtypeOf(typeAI)); |
| 632 JUnitTestCase.assertFalse(typeAI.isSubtypeOf(typeAJ)); | 819 JUnitTestCase.assertFalse(typeAI.isSubtypeOf(typeAJ)); |
| 633 JUnitTestCase.assertTrue(typeAI.isSubtypeOf(typeAI)); | 820 JUnitTestCase.assertTrue(typeAI.isSubtypeOf(typeAI)); |
| 634 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeAI)); | 821 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeAI)); |
| 635 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeAJ)); | 822 JUnitTestCase.assertTrue(typeA.isSubtypeOf(typeAJ)); |
| 636 JUnitTestCase.assertTrue(typeAI.isSubtypeOf(typeA)); | 823 JUnitTestCase.assertTrue(typeAI.isSubtypeOf(typeA)); |
| 637 JUnitTestCase.assertTrue(typeAJ.isSubtypeOf(typeA)); | 824 JUnitTestCase.assertTrue(typeAJ.isSubtypeOf(typeA)); |
| 638 JUnitTestCase.assertFalse(typeAI.isSubtypeOf(typeAK)); | 825 JUnitTestCase.assertFalse(typeAI.isSubtypeOf(typeAK)); |
| 639 JUnitTestCase.assertFalse(typeAK.isSubtypeOf(typeAI)); | 826 JUnitTestCase.assertFalse(typeAK.isSubtypeOf(typeAI)); |
| 640 } | 827 } |
| 641 void test_isSupertypeOf_directSupertype() { | 828 void test_isSupertypeOf_directSupertype() { |
| 642 ClassElement elementA = ElementFactory.classElement2("A", []); | 829 ClassElement classA = ElementFactory.classElement2("A", []); |
| 643 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 830 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 644 InterfaceType typeA = elementA.type; | 831 InterfaceType typeA = classA.type; |
| 645 InterfaceType typeB = elementB.type; | 832 InterfaceType typeB = classB.type; |
| 646 JUnitTestCase.assertFalse(typeB.isSupertypeOf(typeA)); | 833 JUnitTestCase.assertFalse(typeB.isSupertypeOf(typeA)); |
| 647 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeB)); | 834 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeB)); |
| 648 } | 835 } |
| 649 void test_isSupertypeOf_dynamic() { | 836 void test_isSupertypeOf_dynamic() { |
| 650 ClassElement elementA = ElementFactory.classElement2("A", []); | 837 ClassElement classA = ElementFactory.classElement2("A", []); |
| 651 InterfaceType typeA = elementA.type; | 838 InterfaceType typeA = classA.type; |
| 652 Type2 dynamicType = DynamicTypeImpl.instance; | 839 Type2 dynamicType = DynamicTypeImpl.instance; |
| 653 JUnitTestCase.assertTrue(dynamicType.isSupertypeOf(typeA)); | 840 JUnitTestCase.assertTrue(dynamicType.isSupertypeOf(typeA)); |
| 654 JUnitTestCase.assertFalse(typeA.isSupertypeOf(dynamicType)); | 841 JUnitTestCase.assertFalse(typeA.isSupertypeOf(dynamicType)); |
| 655 } | 842 } |
| 656 void test_isSupertypeOf_indirectSupertype() { | 843 void test_isSupertypeOf_indirectSupertype() { |
| 657 ClassElement elementA = ElementFactory.classElement2("A", []); | 844 ClassElement classA = ElementFactory.classElement2("A", []); |
| 658 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 845 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 659 ClassElement elementC = ElementFactory.classElement("C", elementB.type, []); | 846 ClassElement classC = ElementFactory.classElement("C", classB.type, []); |
| 660 InterfaceType typeA = elementA.type; | 847 InterfaceType typeA = classA.type; |
| 661 InterfaceType typeC = elementC.type; | 848 InterfaceType typeC = classC.type; |
| 662 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); | 849 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); |
| 663 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeC)); | 850 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeC)); |
| 664 } | 851 } |
| 665 void test_isSupertypeOf_interface() { | 852 void test_isSupertypeOf_interface() { |
| 666 ClassElement elementA = ElementFactory.classElement2("A", []); | 853 ClassElement classA = ElementFactory.classElement2("A", []); |
| 667 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 854 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 668 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 855 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 669 InterfaceType typeObject = elementA.supertype; | 856 InterfaceType typeObject = classA.supertype; |
| 670 InterfaceType typeA = elementA.type; | 857 InterfaceType typeA = classA.type; |
| 671 InterfaceType typeB = elementB.type; | 858 InterfaceType typeB = classB.type; |
| 672 InterfaceType typeC = elementC.type; | 859 InterfaceType typeC = classC.type; |
| 673 elementC.interfaces = <InterfaceType> [typeB]; | 860 classC.interfaces = <InterfaceType> [typeB]; |
| 674 JUnitTestCase.assertTrue(typeB.isSupertypeOf(typeC)); | 861 JUnitTestCase.assertTrue(typeB.isSupertypeOf(typeC)); |
| 675 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeC)); | 862 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeC)); |
| 676 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeC)); | 863 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeC)); |
| 677 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); | 864 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); |
| 678 } | 865 } |
| 679 void test_isSupertypeOf_mixins() { | 866 void test_isSupertypeOf_mixins() { |
| 680 ClassElement elementA = ElementFactory.classElement2("A", []); | 867 ClassElement classA = ElementFactory.classElement2("A", []); |
| 681 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 868 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 682 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 869 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 683 InterfaceType typeObject = elementA.supertype; | 870 InterfaceType typeObject = classA.supertype; |
| 684 InterfaceType typeA = elementA.type; | 871 InterfaceType typeA = classA.type; |
| 685 InterfaceType typeB = elementB.type; | 872 InterfaceType typeB = classB.type; |
| 686 InterfaceType typeC = elementC.type; | 873 InterfaceType typeC = classC.type; |
| 687 elementC.mixins = <InterfaceType> [typeB]; | 874 classC.mixins = <InterfaceType> [typeB]; |
| 688 JUnitTestCase.assertTrue(typeB.isSupertypeOf(typeC)); | 875 JUnitTestCase.assertTrue(typeB.isSupertypeOf(typeC)); |
| 689 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeC)); | 876 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeC)); |
| 690 JUnitTestCase.assertFalse(typeA.isSupertypeOf(typeC)); | 877 JUnitTestCase.assertFalse(typeA.isSupertypeOf(typeC)); |
| 691 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); | 878 JUnitTestCase.assertFalse(typeC.isSupertypeOf(typeA)); |
| 692 } | 879 } |
| 693 void test_isSupertypeOf_object() { | 880 void test_isSupertypeOf_object() { |
| 694 ClassElement elementA = ElementFactory.classElement2("A", []); | 881 ClassElement classA = ElementFactory.classElement2("A", []); |
| 695 InterfaceType typeA = elementA.type; | 882 InterfaceType typeA = classA.type; |
| 696 InterfaceType typeObject = elementA.supertype; | 883 InterfaceType typeObject = classA.supertype; |
| 697 JUnitTestCase.assertFalse(typeA.isSupertypeOf(typeObject)); | 884 JUnitTestCase.assertFalse(typeA.isSupertypeOf(typeObject)); |
| 698 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeA)); | 885 JUnitTestCase.assertTrue(typeObject.isSupertypeOf(typeA)); |
| 699 } | 886 } |
| 700 void test_isSupertypeOf_self() { | 887 void test_isSupertypeOf_self() { |
| 701 ClassElement elementA = ElementFactory.classElement2("A", []); | 888 ClassElement classA = ElementFactory.classElement2("A", []); |
| 702 InterfaceType typeA = elementA.type; | 889 InterfaceType typeA = classA.type; |
| 703 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeA)); | 890 JUnitTestCase.assertTrue(typeA.isSupertypeOf(typeA)); |
| 704 } | 891 } |
| 892 void test_lookUpGetter_implemented() { |
| 893 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 894 String getterName = "g"; |
| 895 PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, f
alse, null); |
| 896 classA.accessors = <PropertyAccessorElement> [getterG]; |
| 897 InterfaceType typeA = classA.type; |
| 898 LibraryElementImpl library20 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 899 CompilationUnitElement unit = library20.definingCompilationUnit; |
| 900 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 901 JUnitTestCase.assertSame(getterG, typeA.lookUpGetter(getterName, library20))
; |
| 902 } |
| 903 void test_lookUpGetter_inherited() { |
| 904 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 905 String getterName = "g"; |
| 906 PropertyAccessorElement getterG = ElementFactory.getterElement(getterName, f
alse, null); |
| 907 classA.accessors = <PropertyAccessorElement> [getterG]; |
| 908 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 909 InterfaceType typeB = classB.type; |
| 910 LibraryElementImpl library21 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 911 CompilationUnitElement unit = library21.definingCompilationUnit; |
| 912 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA, class
B]; |
| 913 JUnitTestCase.assertSame(getterG, typeB.lookUpGetter(getterName, library21))
; |
| 914 } |
| 915 void test_lookUpGetter_unimplemented() { |
| 916 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 917 InterfaceType typeA = classA.type; |
| 918 LibraryElementImpl library22 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 919 CompilationUnitElement unit = library22.definingCompilationUnit; |
| 920 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 921 JUnitTestCase.assertNull(typeA.lookUpGetter("g", library22)); |
| 922 } |
| 923 void test_lookUpMethod_implemented() { |
| 924 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 925 String methodName = "m"; |
| 926 MethodElementImpl methodM = ElementFactory.methodElement(methodName, null, [
]); |
| 927 classA.methods = <MethodElement> [methodM]; |
| 928 InterfaceType typeA = classA.type; |
| 929 LibraryElementImpl library23 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 930 CompilationUnitElement unit = library23.definingCompilationUnit; |
| 931 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 932 JUnitTestCase.assertSame(methodM, typeA.lookUpMethod(methodName, library23))
; |
| 933 } |
| 934 void test_lookUpMethod_inherited() { |
| 935 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 936 String methodName = "m"; |
| 937 MethodElementImpl methodM = ElementFactory.methodElement(methodName, null, [
]); |
| 938 classA.methods = <MethodElement> [methodM]; |
| 939 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 940 InterfaceType typeB = classB.type; |
| 941 LibraryElementImpl library24 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 942 CompilationUnitElement unit = library24.definingCompilationUnit; |
| 943 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA, class
B]; |
| 944 JUnitTestCase.assertSame(methodM, typeB.lookUpMethod(methodName, library24))
; |
| 945 } |
| 946 void test_lookUpMethod_parameterized() { |
| 947 ClassElementImpl classA = ElementFactory.classElement2("A", ["E"]); |
| 948 Type2 typeE = classA.type.typeArguments[0]; |
| 949 String methodName = "m"; |
| 950 MethodElementImpl methodM = ElementFactory.methodElement(methodName, typeE,
[typeE]); |
| 951 classA.methods = <MethodElement> [methodM]; |
| 952 ClassElementImpl classB = ElementFactory.classElement2("B", ["F"]); |
| 953 InterfaceType typeB = classB.type; |
| 954 InterfaceTypeImpl typeAF = new InterfaceTypeImpl.con1(classA); |
| 955 typeAF.typeArguments = <Type2> [typeB.typeArguments[0]]; |
| 956 classB.supertype = typeAF; |
| 957 LibraryElementImpl library25 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 958 CompilationUnitElement unit = library25.definingCompilationUnit; |
| 959 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 960 InterfaceType typeI = ElementFactory.classElement2("I", []).type; |
| 961 InterfaceTypeImpl typeBI = new InterfaceTypeImpl.con1(classB); |
| 962 typeBI.typeArguments = <Type2> [typeI]; |
| 963 MethodElement method = typeBI.lookUpMethod(methodName, library25); |
| 964 JUnitTestCase.assertNotNull(method); |
| 965 FunctionType methodType = method.type; |
| 966 JUnitTestCase.assertSame(typeI, methodType.returnType); |
| 967 List<Type2> parameterTypes = methodType.normalParameterTypes; |
| 968 EngineTestCase.assertLength(1, parameterTypes); |
| 969 JUnitTestCase.assertSame(typeI, parameterTypes[0]); |
| 970 } |
| 971 void test_lookUpMethod_unimplemented() { |
| 972 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 973 InterfaceType typeA = classA.type; |
| 974 LibraryElementImpl library26 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 975 CompilationUnitElement unit = library26.definingCompilationUnit; |
| 976 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 977 JUnitTestCase.assertNull(typeA.lookUpMethod("m", library26)); |
| 978 } |
| 979 void test_lookUpSetter_implemented() { |
| 980 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 981 String setterName = "s"; |
| 982 PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, f
alse, null); |
| 983 classA.accessors = <PropertyAccessorElement> [setterS]; |
| 984 InterfaceType typeA = classA.type; |
| 985 LibraryElementImpl library27 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 986 CompilationUnitElement unit = library27.definingCompilationUnit; |
| 987 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 988 JUnitTestCase.assertSame(setterS, typeA.lookUpSetter(setterName, library27))
; |
| 989 } |
| 990 void test_lookUpSetter_inherited() { |
| 991 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 992 String setterName = "g"; |
| 993 PropertyAccessorElement setterS = ElementFactory.setterElement(setterName, f
alse, null); |
| 994 classA.accessors = <PropertyAccessorElement> [setterS]; |
| 995 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 996 InterfaceType typeB = classB.type; |
| 997 LibraryElementImpl library28 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 998 CompilationUnitElement unit = library28.definingCompilationUnit; |
| 999 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA, class
B]; |
| 1000 JUnitTestCase.assertSame(setterS, typeB.lookUpSetter(setterName, library28))
; |
| 1001 } |
| 1002 void test_lookUpSetter_unimplemented() { |
| 1003 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1004 InterfaceType typeA = classA.type; |
| 1005 LibraryElementImpl library29 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1006 CompilationUnitElement unit = library29.definingCompilationUnit; |
| 1007 ((unit as CompilationUnitElementImpl)).types = <ClassElement> [classA]; |
| 1008 JUnitTestCase.assertNull(typeA.lookUpSetter("s", library29)); |
| 1009 } |
| 705 void test_setTypeArguments() { | 1010 void test_setTypeArguments() { |
| 706 InterfaceTypeImpl type28 = ElementFactory.classElement2("A", []).type as Int
erfaceTypeImpl; | 1011 InterfaceTypeImpl type36 = ElementFactory.classElement2("A", []).type as Int
erfaceTypeImpl; |
| 707 List<Type2> typeArguments = <Type2> [new InterfaceTypeImpl.con1(ElementFacto
ry.classElement2("B", [])), new InterfaceTypeImpl.con1(ElementFactory.classEleme
nt2("C", []))]; | 1012 List<Type2> typeArguments = <Type2> [ElementFactory.classElement2("B", []).t
ype, ElementFactory.classElement2("C", []).type]; |
| 708 type28.typeArguments = typeArguments; | 1013 type36.typeArguments = typeArguments; |
| 709 JUnitTestCase.assertEquals(typeArguments, type28.typeArguments); | 1014 JUnitTestCase.assertEquals(typeArguments, type36.typeArguments); |
| 710 } | 1015 } |
| 711 void test_substitute_equal() { | 1016 void test_substitute_equal() { |
| 712 ClassElementImpl classElement = new ClassElementImpl(ASTFactory.identifier2(
"A")); | 1017 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 713 TypeVariableElementImpl parameterElement = new TypeVariableElementImpl(ASTFa
ctory.identifier2("E")); | 1018 TypeVariableElementImpl parameterElement = new TypeVariableElementImpl(ASTFa
ctory.identifier3("E")); |
| 714 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classElement); | 1019 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classA); |
| 715 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(parameterElement); | 1020 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(parameterElement); |
| 716 type.typeArguments = <Type2> [parameter]; | 1021 type.typeArguments = <Type2> [parameter]; |
| 717 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier2("B"))); | 1022 InterfaceType argumentType = ElementFactory.classElement2("B", []).type; |
| 718 InterfaceType result = type.substitute2(<Type2> [argumentType], <Type2> [par
ameter]); | 1023 InterfaceType result = type.substitute2(<Type2> [argumentType], <Type2> [par
ameter]); |
| 719 JUnitTestCase.assertEquals(classElement, result.element); | 1024 JUnitTestCase.assertEquals(classA, result.element); |
| 720 List<Type2> resultArguments = result.typeArguments; | 1025 List<Type2> resultArguments = result.typeArguments; |
| 721 EngineTestCase.assertLength(1, resultArguments); | 1026 EngineTestCase.assertLength(1, resultArguments); |
| 722 JUnitTestCase.assertEquals(argumentType, resultArguments[0]); | 1027 JUnitTestCase.assertEquals(argumentType, resultArguments[0]); |
| 723 } | 1028 } |
| 724 void test_substitute_notEqual() { | 1029 void test_substitute_notEqual() { |
| 725 ClassElementImpl classElement = new ClassElementImpl(ASTFactory.identifier2(
"A")); | 1030 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 726 TypeVariableElementImpl parameterElement = new TypeVariableElementImpl(ASTFa
ctory.identifier2("E")); | 1031 TypeVariableElementImpl parameterElement = new TypeVariableElementImpl(ASTFa
ctory.identifier3("E")); |
| 727 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classElement); | 1032 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(classA); |
| 728 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(parameterElement); | 1033 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(parameterElement); |
| 729 type.typeArguments = <Type2> [parameter]; | 1034 type.typeArguments = <Type2> [parameter]; |
| 730 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier2("B"))); | 1035 InterfaceType argumentType = ElementFactory.classElement2("B", []).type; |
| 731 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier2("F"))); | 1036 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier3("F"))); |
| 732 InterfaceType result = type.substitute2(<Type2> [argumentType], <Type2> [par
ameterType]); | 1037 InterfaceType result = type.substitute2(<Type2> [argumentType], <Type2> [par
ameterType]); |
| 733 JUnitTestCase.assertEquals(classElement, result.element); | 1038 JUnitTestCase.assertEquals(classA, result.element); |
| 734 List<Type2> resultArguments = result.typeArguments; | 1039 List<Type2> resultArguments = result.typeArguments; |
| 735 EngineTestCase.assertLength(1, resultArguments); | 1040 EngineTestCase.assertLength(1, resultArguments); |
| 736 JUnitTestCase.assertEquals(parameter, resultArguments[0]); | 1041 JUnitTestCase.assertEquals(parameter, resultArguments[0]); |
| 737 } | 1042 } |
| 738 static dartSuite() { | 1043 static dartSuite() { |
| 739 _ut.group('InterfaceTypeImplTest', () { | 1044 _ut.group('InterfaceTypeImplTest', () { |
| 740 _ut.test('test_computeLongestInheritancePathToObject_multipleInterfacePath
s', () { | 1045 _ut.test('test_computeLongestInheritancePathToObject_multipleInterfacePath
s', () { |
| 741 final __test = new InterfaceTypeImplTest(); | 1046 final __test = new InterfaceTypeImplTest(); |
| 742 runJUnitTest(__test, __test.test_computeLongestInheritancePathToObject_m
ultipleInterfacePaths); | 1047 runJUnitTest(__test, __test.test_computeLongestInheritancePathToObject_m
ultipleInterfacePaths); |
| 743 }); | 1048 }); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 774 runJUnitTest(__test, __test.test_computeSuperinterfaceSet_singleSupercla
ssPath); | 1079 runJUnitTest(__test, __test.test_computeSuperinterfaceSet_singleSupercla
ssPath); |
| 775 }); | 1080 }); |
| 776 _ut.test('test_creation', () { | 1081 _ut.test('test_creation', () { |
| 777 final __test = new InterfaceTypeImplTest(); | 1082 final __test = new InterfaceTypeImplTest(); |
| 778 runJUnitTest(__test, __test.test_creation); | 1083 runJUnitTest(__test, __test.test_creation); |
| 779 }); | 1084 }); |
| 780 _ut.test('test_getElement', () { | 1085 _ut.test('test_getElement', () { |
| 781 final __test = new InterfaceTypeImplTest(); | 1086 final __test = new InterfaceTypeImplTest(); |
| 782 runJUnitTest(__test, __test.test_getElement); | 1087 runJUnitTest(__test, __test.test_getElement); |
| 783 }); | 1088 }); |
| 1089 _ut.test('test_getGetter_implemented', () { |
| 1090 final __test = new InterfaceTypeImplTest(); |
| 1091 runJUnitTest(__test, __test.test_getGetter_implemented); |
| 1092 }); |
| 1093 _ut.test('test_getGetter_parameterized', () { |
| 1094 final __test = new InterfaceTypeImplTest(); |
| 1095 runJUnitTest(__test, __test.test_getGetter_parameterized); |
| 1096 }); |
| 1097 _ut.test('test_getGetter_unimplemented', () { |
| 1098 final __test = new InterfaceTypeImplTest(); |
| 1099 runJUnitTest(__test, __test.test_getGetter_unimplemented); |
| 1100 }); |
| 1101 _ut.test('test_getInterfaces_nonParameterized', () { |
| 1102 final __test = new InterfaceTypeImplTest(); |
| 1103 runJUnitTest(__test, __test.test_getInterfaces_nonParameterized); |
| 1104 }); |
| 1105 _ut.test('test_getInterfaces_parameterized', () { |
| 1106 final __test = new InterfaceTypeImplTest(); |
| 1107 runJUnitTest(__test, __test.test_getInterfaces_parameterized); |
| 1108 }); |
| 784 _ut.test('test_getLeastUpperBound_directInterfaceCase', () { | 1109 _ut.test('test_getLeastUpperBound_directInterfaceCase', () { |
| 785 final __test = new InterfaceTypeImplTest(); | 1110 final __test = new InterfaceTypeImplTest(); |
| 786 runJUnitTest(__test, __test.test_getLeastUpperBound_directInterfaceCase)
; | 1111 runJUnitTest(__test, __test.test_getLeastUpperBound_directInterfaceCase)
; |
| 787 }); | 1112 }); |
| 788 _ut.test('test_getLeastUpperBound_directSubclassCase', () { | 1113 _ut.test('test_getLeastUpperBound_directSubclassCase', () { |
| 789 final __test = new InterfaceTypeImplTest(); | 1114 final __test = new InterfaceTypeImplTest(); |
| 790 runJUnitTest(__test, __test.test_getLeastUpperBound_directSubclassCase); | 1115 runJUnitTest(__test, __test.test_getLeastUpperBound_directSubclassCase); |
| 791 }); | 1116 }); |
| 792 _ut.test('test_getLeastUpperBound_functionType', () { | 1117 _ut.test('test_getLeastUpperBound_functionType', () { |
| 793 final __test = new InterfaceTypeImplTest(); | 1118 final __test = new InterfaceTypeImplTest(); |
| 794 runJUnitTest(__test, __test.test_getLeastUpperBound_functionType); | 1119 runJUnitTest(__test, __test.test_getLeastUpperBound_functionType); |
| 795 }); | 1120 }); |
| 1121 _ut.test('test_getLeastUpperBound_ignoreTypeParameters', () { |
| 1122 final __test = new InterfaceTypeImplTest(); |
| 1123 runJUnitTest(__test, __test.test_getLeastUpperBound_ignoreTypeParameters
); |
| 1124 }); |
| 796 _ut.test('test_getLeastUpperBound_mixinCase', () { | 1125 _ut.test('test_getLeastUpperBound_mixinCase', () { |
| 797 final __test = new InterfaceTypeImplTest(); | 1126 final __test = new InterfaceTypeImplTest(); |
| 798 runJUnitTest(__test, __test.test_getLeastUpperBound_mixinCase); | 1127 runJUnitTest(__test, __test.test_getLeastUpperBound_mixinCase); |
| 799 }); | 1128 }); |
| 800 _ut.test('test_getLeastUpperBound_null', () { | 1129 _ut.test('test_getLeastUpperBound_null', () { |
| 801 final __test = new InterfaceTypeImplTest(); | 1130 final __test = new InterfaceTypeImplTest(); |
| 802 runJUnitTest(__test, __test.test_getLeastUpperBound_null); | 1131 runJUnitTest(__test, __test.test_getLeastUpperBound_null); |
| 803 }); | 1132 }); |
| 804 _ut.test('test_getLeastUpperBound_object', () { | 1133 _ut.test('test_getLeastUpperBound_object', () { |
| 805 final __test = new InterfaceTypeImplTest(); | 1134 final __test = new InterfaceTypeImplTest(); |
| (...skipping 28 matching lines...) Expand all Loading... |
| 834 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
2); | 1163 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
2); |
| 835 }); | 1164 }); |
| 836 _ut.test('test_getLeastUpperBound_sharedSuperinterface3', () { | 1165 _ut.test('test_getLeastUpperBound_sharedSuperinterface3', () { |
| 837 final __test = new InterfaceTypeImplTest(); | 1166 final __test = new InterfaceTypeImplTest(); |
| 838 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
3); | 1167 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
3); |
| 839 }); | 1168 }); |
| 840 _ut.test('test_getLeastUpperBound_sharedSuperinterface4', () { | 1169 _ut.test('test_getLeastUpperBound_sharedSuperinterface4', () { |
| 841 final __test = new InterfaceTypeImplTest(); | 1170 final __test = new InterfaceTypeImplTest(); |
| 842 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
4); | 1171 runJUnitTest(__test, __test.test_getLeastUpperBound_sharedSuperinterface
4); |
| 843 }); | 1172 }); |
| 844 _ut.test('test_getTypeArguments', () { | 1173 _ut.test('test_getMethod_implemented', () { |
| 845 final __test = new InterfaceTypeImplTest(); | 1174 final __test = new InterfaceTypeImplTest(); |
| 846 runJUnitTest(__test, __test.test_getTypeArguments); | 1175 runJUnitTest(__test, __test.test_getMethod_implemented); |
| 1176 }); |
| 1177 _ut.test('test_getMethod_parameterized', () { |
| 1178 final __test = new InterfaceTypeImplTest(); |
| 1179 runJUnitTest(__test, __test.test_getMethod_parameterized); |
| 1180 }); |
| 1181 _ut.test('test_getMethod_unimplemented', () { |
| 1182 final __test = new InterfaceTypeImplTest(); |
| 1183 runJUnitTest(__test, __test.test_getMethod_unimplemented); |
| 1184 }); |
| 1185 _ut.test('test_getMixins_nonParameterized', () { |
| 1186 final __test = new InterfaceTypeImplTest(); |
| 1187 runJUnitTest(__test, __test.test_getMixins_nonParameterized); |
| 1188 }); |
| 1189 _ut.test('test_getMixins_parameterized', () { |
| 1190 final __test = new InterfaceTypeImplTest(); |
| 1191 runJUnitTest(__test, __test.test_getMixins_parameterized); |
| 1192 }); |
| 1193 _ut.test('test_getSetter_implemented', () { |
| 1194 final __test = new InterfaceTypeImplTest(); |
| 1195 runJUnitTest(__test, __test.test_getSetter_implemented); |
| 1196 }); |
| 1197 _ut.test('test_getSetter_parameterized', () { |
| 1198 final __test = new InterfaceTypeImplTest(); |
| 1199 runJUnitTest(__test, __test.test_getSetter_parameterized); |
| 1200 }); |
| 1201 _ut.test('test_getSetter_unimplemented', () { |
| 1202 final __test = new InterfaceTypeImplTest(); |
| 1203 runJUnitTest(__test, __test.test_getSetter_unimplemented); |
| 1204 }); |
| 1205 _ut.test('test_getSuperclass_nonParameterized', () { |
| 1206 final __test = new InterfaceTypeImplTest(); |
| 1207 runJUnitTest(__test, __test.test_getSuperclass_nonParameterized); |
| 1208 }); |
| 1209 _ut.test('test_getSuperclass_parameterized', () { |
| 1210 final __test = new InterfaceTypeImplTest(); |
| 1211 runJUnitTest(__test, __test.test_getSuperclass_parameterized); |
| 1212 }); |
| 1213 _ut.test('test_getTypeArguments_empty', () { |
| 1214 final __test = new InterfaceTypeImplTest(); |
| 1215 runJUnitTest(__test, __test.test_getTypeArguments_empty); |
| 847 }); | 1216 }); |
| 848 _ut.test('test_isDirectSupertypeOf_extends', () { | 1217 _ut.test('test_isDirectSupertypeOf_extends', () { |
| 849 final __test = new InterfaceTypeImplTest(); | 1218 final __test = new InterfaceTypeImplTest(); |
| 850 runJUnitTest(__test, __test.test_isDirectSupertypeOf_extends); | 1219 runJUnitTest(__test, __test.test_isDirectSupertypeOf_extends); |
| 851 }); | 1220 }); |
| 852 _ut.test('test_isDirectSupertypeOf_false', () { | 1221 _ut.test('test_isDirectSupertypeOf_false', () { |
| 853 final __test = new InterfaceTypeImplTest(); | 1222 final __test = new InterfaceTypeImplTest(); |
| 854 runJUnitTest(__test, __test.test_isDirectSupertypeOf_false); | 1223 runJUnitTest(__test, __test.test_isDirectSupertypeOf_false); |
| 855 }); | 1224 }); |
| 856 _ut.test('test_isDirectSupertypeOf_implements', () { | 1225 _ut.test('test_isDirectSupertypeOf_implements', () { |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 938 runJUnitTest(__test, __test.test_isSupertypeOf_mixins); | 1307 runJUnitTest(__test, __test.test_isSupertypeOf_mixins); |
| 939 }); | 1308 }); |
| 940 _ut.test('test_isSupertypeOf_object', () { | 1309 _ut.test('test_isSupertypeOf_object', () { |
| 941 final __test = new InterfaceTypeImplTest(); | 1310 final __test = new InterfaceTypeImplTest(); |
| 942 runJUnitTest(__test, __test.test_isSupertypeOf_object); | 1311 runJUnitTest(__test, __test.test_isSupertypeOf_object); |
| 943 }); | 1312 }); |
| 944 _ut.test('test_isSupertypeOf_self', () { | 1313 _ut.test('test_isSupertypeOf_self', () { |
| 945 final __test = new InterfaceTypeImplTest(); | 1314 final __test = new InterfaceTypeImplTest(); |
| 946 runJUnitTest(__test, __test.test_isSupertypeOf_self); | 1315 runJUnitTest(__test, __test.test_isSupertypeOf_self); |
| 947 }); | 1316 }); |
| 1317 _ut.test('test_lookUpGetter_implemented', () { |
| 1318 final __test = new InterfaceTypeImplTest(); |
| 1319 runJUnitTest(__test, __test.test_lookUpGetter_implemented); |
| 1320 }); |
| 1321 _ut.test('test_lookUpGetter_inherited', () { |
| 1322 final __test = new InterfaceTypeImplTest(); |
| 1323 runJUnitTest(__test, __test.test_lookUpGetter_inherited); |
| 1324 }); |
| 1325 _ut.test('test_lookUpGetter_unimplemented', () { |
| 1326 final __test = new InterfaceTypeImplTest(); |
| 1327 runJUnitTest(__test, __test.test_lookUpGetter_unimplemented); |
| 1328 }); |
| 1329 _ut.test('test_lookUpMethod_implemented', () { |
| 1330 final __test = new InterfaceTypeImplTest(); |
| 1331 runJUnitTest(__test, __test.test_lookUpMethod_implemented); |
| 1332 }); |
| 1333 _ut.test('test_lookUpMethod_inherited', () { |
| 1334 final __test = new InterfaceTypeImplTest(); |
| 1335 runJUnitTest(__test, __test.test_lookUpMethod_inherited); |
| 1336 }); |
| 1337 _ut.test('test_lookUpMethod_parameterized', () { |
| 1338 final __test = new InterfaceTypeImplTest(); |
| 1339 runJUnitTest(__test, __test.test_lookUpMethod_parameterized); |
| 1340 }); |
| 1341 _ut.test('test_lookUpMethod_unimplemented', () { |
| 1342 final __test = new InterfaceTypeImplTest(); |
| 1343 runJUnitTest(__test, __test.test_lookUpMethod_unimplemented); |
| 1344 }); |
| 1345 _ut.test('test_lookUpSetter_implemented', () { |
| 1346 final __test = new InterfaceTypeImplTest(); |
| 1347 runJUnitTest(__test, __test.test_lookUpSetter_implemented); |
| 1348 }); |
| 1349 _ut.test('test_lookUpSetter_inherited', () { |
| 1350 final __test = new InterfaceTypeImplTest(); |
| 1351 runJUnitTest(__test, __test.test_lookUpSetter_inherited); |
| 1352 }); |
| 1353 _ut.test('test_lookUpSetter_unimplemented', () { |
| 1354 final __test = new InterfaceTypeImplTest(); |
| 1355 runJUnitTest(__test, __test.test_lookUpSetter_unimplemented); |
| 1356 }); |
| 948 _ut.test('test_setTypeArguments', () { | 1357 _ut.test('test_setTypeArguments', () { |
| 949 final __test = new InterfaceTypeImplTest(); | 1358 final __test = new InterfaceTypeImplTest(); |
| 950 runJUnitTest(__test, __test.test_setTypeArguments); | 1359 runJUnitTest(__test, __test.test_setTypeArguments); |
| 951 }); | 1360 }); |
| 952 _ut.test('test_substitute_equal', () { | 1361 _ut.test('test_substitute_equal', () { |
| 953 final __test = new InterfaceTypeImplTest(); | 1362 final __test = new InterfaceTypeImplTest(); |
| 954 runJUnitTest(__test, __test.test_substitute_equal); | 1363 runJUnitTest(__test, __test.test_substitute_equal); |
| 955 }); | 1364 }); |
| 956 _ut.test('test_substitute_notEqual', () { | 1365 _ut.test('test_substitute_notEqual', () { |
| 957 final __test = new InterfaceTypeImplTest(); | 1366 final __test = new InterfaceTypeImplTest(); |
| 958 runJUnitTest(__test, __test.test_substitute_notEqual); | 1367 runJUnitTest(__test, __test.test_substitute_notEqual); |
| 959 }); | 1368 }); |
| 960 }); | 1369 }); |
| 961 } | 1370 } |
| 962 } | 1371 } |
| 963 class TypeVariableTypeImplTest extends EngineTestCase { | 1372 class TypeVariableTypeImplTest extends EngineTestCase { |
| 964 void test_creation() { | 1373 void test_creation() { |
| 965 JUnitTestCase.assertNotNull(new TypeVariableTypeImpl(new TypeVariableElement
Impl(ASTFactory.identifier2("E")))); | 1374 JUnitTestCase.assertNotNull(new TypeVariableTypeImpl(new TypeVariableElement
Impl(ASTFactory.identifier3("E")))); |
| 966 } | 1375 } |
| 967 void test_getElement() { | 1376 void test_getElement() { |
| 968 TypeVariableElementImpl element = new TypeVariableElementImpl(ASTFactory.ide
ntifier2("E")); | 1377 TypeVariableElementImpl element = new TypeVariableElementImpl(ASTFactory.ide
ntifier3("E")); |
| 969 TypeVariableTypeImpl type = new TypeVariableTypeImpl(element); | 1378 TypeVariableTypeImpl type = new TypeVariableTypeImpl(element); |
| 970 JUnitTestCase.assertEquals(element, type.element); | 1379 JUnitTestCase.assertEquals(element, type.element); |
| 971 } | 1380 } |
| 972 void test_substitute_equal() { | 1381 void test_substitute_equal() { |
| 973 TypeVariableElementImpl element = new TypeVariableElementImpl(ASTFactory.ide
ntifier2("E")); | 1382 TypeVariableElementImpl element = new TypeVariableElementImpl(ASTFactory.ide
ntifier3("E")); |
| 974 TypeVariableTypeImpl type = new TypeVariableTypeImpl(element); | 1383 TypeVariableTypeImpl type = new TypeVariableTypeImpl(element); |
| 975 InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(new ClassElementImpl
(ASTFactory.identifier2("A"))); | 1384 InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(new ClassElementImpl
(ASTFactory.identifier3("A"))); |
| 976 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(element); | 1385 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(element); |
| 977 JUnitTestCase.assertSame(argument, type.substitute2(<Type2> [argument], <Typ
e2> [parameter])); | 1386 JUnitTestCase.assertSame(argument, type.substitute2(<Type2> [argument], <Typ
e2> [parameter])); |
| 978 } | 1387 } |
| 979 void test_substitute_notEqual() { | 1388 void test_substitute_notEqual() { |
| 980 TypeVariableTypeImpl type = new TypeVariableTypeImpl(new TypeVariableElement
Impl(ASTFactory.identifier2("E"))); | 1389 TypeVariableTypeImpl type = new TypeVariableTypeImpl(new TypeVariableElement
Impl(ASTFactory.identifier3("E"))); |
| 981 InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(new ClassElementImpl
(ASTFactory.identifier2("A"))); | 1390 InterfaceTypeImpl argument = new InterfaceTypeImpl.con1(new ClassElementImpl
(ASTFactory.identifier3("A"))); |
| 982 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(new TypeVariableEl
ementImpl(ASTFactory.identifier2("F"))); | 1391 TypeVariableTypeImpl parameter = new TypeVariableTypeImpl(new TypeVariableEl
ementImpl(ASTFactory.identifier3("F"))); |
| 983 JUnitTestCase.assertSame(type, type.substitute2(<Type2> [argument], <Type2>
[parameter])); | 1392 JUnitTestCase.assertSame(type, type.substitute2(<Type2> [argument], <Type2>
[parameter])); |
| 984 } | 1393 } |
| 985 static dartSuite() { | 1394 static dartSuite() { |
| 986 _ut.group('TypeVariableTypeImplTest', () { | 1395 _ut.group('TypeVariableTypeImplTest', () { |
| 987 _ut.test('test_creation', () { | 1396 _ut.test('test_creation', () { |
| 988 final __test = new TypeVariableTypeImplTest(); | 1397 final __test = new TypeVariableTypeImplTest(); |
| 989 runJUnitTest(__test, __test.test_creation); | 1398 runJUnitTest(__test, __test.test_creation); |
| 990 }); | 1399 }); |
| 991 _ut.test('test_getElement', () { | 1400 _ut.test('test_getElement', () { |
| 992 final __test = new TypeVariableTypeImplTest(); | 1401 final __test = new TypeVariableTypeImplTest(); |
| (...skipping 14 matching lines...) Expand all Loading... |
| 1007 * The class {@code ElementFactory} defines utility methods used to create eleme
nts for testing | 1416 * The class {@code ElementFactory} defines utility methods used to create eleme
nts for testing |
| 1008 * purposes. The elements that are created are complete in the sense that as muc
h of the element | 1417 * purposes. The elements that are created are complete in the sense that as muc
h of the element |
| 1009 * model as can be created, given the provided information, has been created. | 1418 * model as can be created, given the provided information, has been created. |
| 1010 */ | 1419 */ |
| 1011 class ElementFactory { | 1420 class ElementFactory { |
| 1012 /** | 1421 /** |
| 1013 * The element representing the class 'Object'. | 1422 * The element representing the class 'Object'. |
| 1014 */ | 1423 */ |
| 1015 static ClassElementImpl _objectElement; | 1424 static ClassElementImpl _objectElement; |
| 1016 static ClassElementImpl classElement(String typeName, InterfaceType superclass
Type, List<String> parameterNames) { | 1425 static ClassElementImpl classElement(String typeName, InterfaceType superclass
Type, List<String> parameterNames) { |
| 1017 ClassElementImpl element = new ClassElementImpl(ASTFactory.identifier2(typeN
ame)); | 1426 ClassElementImpl element = new ClassElementImpl(ASTFactory.identifier3(typeN
ame)); |
| 1018 element.supertype = superclassType; | 1427 element.supertype = superclassType; |
| 1019 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element); | 1428 InterfaceTypeImpl type = new InterfaceTypeImpl.con1(element); |
| 1020 element.type = type; | 1429 element.type = type; |
| 1021 int count = parameterNames.length; | 1430 int count = parameterNames.length; |
| 1022 if (count > 0) { | 1431 if (count > 0) { |
| 1023 List<TypeVariableElementImpl> typeVariables = new List<TypeVariableElement
Impl>(count); | 1432 List<TypeVariableElementImpl> typeVariables = new List<TypeVariableElement
Impl>(count); |
| 1024 List<TypeVariableTypeImpl> typeArguments = new List<TypeVariableTypeImpl>(
count); | 1433 List<TypeVariableTypeImpl> typeArguments = new List<TypeVariableTypeImpl>(
count); |
| 1025 for (int i = 0; i < count; i++) { | 1434 for (int i = 0; i < count; i++) { |
| 1026 TypeVariableElementImpl variable = new TypeVariableElementImpl(ASTFactor
y.identifier2(parameterNames[i])); | 1435 TypeVariableElementImpl variable = new TypeVariableElementImpl(ASTFactor
y.identifier3(parameterNames[i])); |
| 1027 typeVariables[i] = variable; | 1436 typeVariables[i] = variable; |
| 1028 typeArguments[i] = new TypeVariableTypeImpl(variable); | 1437 typeArguments[i] = new TypeVariableTypeImpl(variable); |
| 1029 variable.type = typeArguments[i]; | 1438 variable.type = typeArguments[i]; |
| 1030 } | 1439 } |
| 1031 element.typeVariables = typeVariables; | 1440 element.typeVariables = typeVariables; |
| 1032 type.typeArguments = typeArguments; | 1441 type.typeArguments = typeArguments; |
| 1033 } | 1442 } |
| 1034 return element; | 1443 return element; |
| 1035 } | 1444 } |
| 1036 static ClassElementImpl classElement2(String typeName, List<String> parameterN
ames) => classElement(typeName, object.type, parameterNames); | 1445 static ClassElementImpl classElement2(String typeName, List<String> parameterN
ames) => classElement(typeName, object.type, parameterNames); |
| 1037 static ConstructorElementImpl constructorElement(String name) => new Construct
orElementImpl(name == null ? null : ASTFactory.identifier2(name)); | 1446 static ConstructorElementImpl constructorElement(String name) => new Construct
orElementImpl(name == null ? null : ASTFactory.identifier3(name)); |
| 1038 static ExportElementImpl exportFor(LibraryElement exportedLibrary4, List<Names
paceCombinator> combinators4) { | 1447 static ExportElementImpl exportFor(LibraryElement exportedLibrary4, List<Names
paceCombinator> combinators4) { |
| 1039 ExportElementImpl spec = new ExportElementImpl(); | 1448 ExportElementImpl spec = new ExportElementImpl(); |
| 1040 spec.exportedLibrary = exportedLibrary4; | 1449 spec.exportedLibrary = exportedLibrary4; |
| 1041 spec.combinators = combinators4; | 1450 spec.combinators = combinators4; |
| 1042 return spec; | 1451 return spec; |
| 1043 } | 1452 } |
| 1044 static FieldElementImpl fieldElement(String name, bool isStatic, bool isFinal,
bool isConst, Type2 type34) { | 1453 static FieldElementImpl fieldElement(String name, bool isStatic, bool isFinal,
bool isConst, Type2 type43) { |
| 1045 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier2(na
me)); | 1454 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier3(na
me)); |
| 1046 field.const3 = isConst; | 1455 field.const3 = isConst; |
| 1047 field.final2 = isFinal; | 1456 field.final2 = isFinal; |
| 1048 field.static = isStatic; | 1457 field.static = isStatic; |
| 1049 field.type = type34; | 1458 field.type = type43; |
| 1050 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); | 1459 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); |
| 1051 getter.getter = true; | 1460 getter.getter = true; |
| 1052 getter.synthetic = true; | 1461 getter.synthetic = true; |
| 1053 field.getter = getter; | 1462 field.getter = getter; |
| 1054 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); | 1463 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); |
| 1055 getterType.returnType = type34; | 1464 getterType.returnType = type43; |
| 1056 getter.type = getterType; | 1465 getter.type = getterType; |
| 1057 if (!isConst && !isFinal) { | 1466 if (!isConst && !isFinal) { |
| 1058 PropertyAccessorElementImpl setter = new PropertyAccessorElementImpl.con2(
field); | 1467 PropertyAccessorElementImpl setter = new PropertyAccessorElementImpl.con2(
field); |
| 1059 setter.setter = true; | 1468 setter.setter = true; |
| 1060 setter.synthetic = true; | 1469 setter.synthetic = true; |
| 1061 field.setter = setter; | 1470 field.setter = setter; |
| 1062 FunctionTypeImpl setterType = new FunctionTypeImpl.con1(getter); | 1471 FunctionTypeImpl setterType = new FunctionTypeImpl.con1(getter); |
| 1063 setterType.normalParameterTypes = <Type2> [type34]; | 1472 setterType.normalParameterTypes = <Type2> [type43]; |
| 1064 setterType.returnType = VoidTypeImpl.instance; | 1473 setterType.returnType = VoidTypeImpl.instance; |
| 1065 setter.type = setterType; | 1474 setter.type = setterType; |
| 1066 } | 1475 } |
| 1067 return field; | 1476 return field; |
| 1068 } | 1477 } |
| 1069 static FunctionElementImpl functionElement(String functionName) => functionEle
ment4(functionName, null, null, null, null); | 1478 static FunctionElementImpl functionElement(String functionName) => functionEle
ment4(functionName, null, null, null, null); |
| 1070 static FunctionElementImpl functionElement2(String functionName, ClassElement
returnElement) => functionElement3(functionName, returnElement, null, null); | 1479 static FunctionElementImpl functionElement2(String functionName, ClassElement
returnElement) => functionElement3(functionName, returnElement, null, null); |
| 1071 static FunctionElementImpl functionElement3(String functionName, ClassElement
returnElement, List<ClassElement> normalParameters, List<ClassElement> optionalP
arameters) { | 1480 static FunctionElementImpl functionElement3(String functionName, ClassElement
returnElement, List<ClassElement> normalParameters, List<ClassElement> optionalP
arameters) { |
| 1072 FunctionElementImpl functionElement = new FunctionElementImpl.con1(ASTFactor
y.identifier2(functionName)); | 1481 FunctionElementImpl functionElement = new FunctionElementImpl.con1(ASTFactor
y.identifier3(functionName)); |
| 1073 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement); | 1482 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement); |
| 1074 functionElement.type = functionType; | 1483 functionElement.type = functionType; |
| 1075 if (returnElement != null) { | 1484 if (returnElement != null) { |
| 1076 functionType.returnType = returnElement.type; | 1485 functionType.returnType = returnElement.type; |
| 1077 } | 1486 } |
| 1078 int count = normalParameters == null ? 0 : normalParameters.length; | 1487 int count = normalParameters == null ? 0 : normalParameters.length; |
| 1079 if (count > 0) { | 1488 if (count > 0) { |
| 1080 List<InterfaceType> normalParameterTypes = new List<InterfaceType>(count); | 1489 List<InterfaceType> normalParameterTypes = new List<InterfaceType>(count); |
| 1081 for (int i = 0; i < count; i++) { | 1490 for (int i = 0; i < count; i++) { |
| 1082 normalParameterTypes[i] = normalParameters[i].type; | 1491 normalParameterTypes[i] = normalParameters[i].type; |
| 1083 } | 1492 } |
| 1084 functionType.normalParameterTypes = normalParameterTypes; | 1493 functionType.normalParameterTypes = normalParameterTypes; |
| 1085 } | 1494 } |
| 1086 count = optionalParameters == null ? 0 : optionalParameters.length; | 1495 count = optionalParameters == null ? 0 : optionalParameters.length; |
| 1087 if (count > 0) { | 1496 if (count > 0) { |
| 1088 List<InterfaceType> optionalParameterTypes = new List<InterfaceType>(count
); | 1497 List<InterfaceType> optionalParameterTypes = new List<InterfaceType>(count
); |
| 1089 for (int i = 0; i < count; i++) { | 1498 for (int i = 0; i < count; i++) { |
| 1090 optionalParameterTypes[i] = optionalParameters[i].type; | 1499 optionalParameterTypes[i] = optionalParameters[i].type; |
| 1091 } | 1500 } |
| 1092 functionType.optionalParameterTypes = optionalParameterTypes; | 1501 functionType.optionalParameterTypes = optionalParameterTypes; |
| 1093 } | 1502 } |
| 1094 return functionElement; | 1503 return functionElement; |
| 1095 } | 1504 } |
| 1096 static FunctionElementImpl functionElement4(String functionName, ClassElement
returnElement, List<ClassElement> normalParameters, List<String> names, List<Cla
ssElement> namedParameters) { | 1505 static FunctionElementImpl functionElement4(String functionName, ClassElement
returnElement, List<ClassElement> normalParameters, List<String> names, List<Cla
ssElement> namedParameters) { |
| 1097 FunctionElementImpl functionElement = new FunctionElementImpl.con1(ASTFactor
y.identifier2(functionName)); | 1506 FunctionElementImpl functionElement = new FunctionElementImpl.con1(ASTFactor
y.identifier3(functionName)); |
| 1098 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement); | 1507 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(functionElement); |
| 1099 functionElement.type = functionType; | 1508 functionElement.type = functionType; |
| 1100 if (returnElement != null) { | 1509 if (returnElement != null) { |
| 1101 functionType.returnType = returnElement.type; | 1510 functionType.returnType = returnElement.type; |
| 1102 } | 1511 } |
| 1103 int count = normalParameters == null ? 0 : normalParameters.length; | 1512 int count = normalParameters == null ? 0 : normalParameters.length; |
| 1104 if (count > 0) { | 1513 if (count > 0) { |
| 1105 List<InterfaceType> normalParameterTypes = new List<InterfaceType>(count); | 1514 List<InterfaceType> normalParameterTypes = new List<InterfaceType>(count); |
| 1106 for (int i = 0; i < count; i++) { | 1515 for (int i = 0; i < count; i++) { |
| 1107 normalParameterTypes[i] = normalParameters[i].type; | 1516 normalParameterTypes[i] = normalParameters[i].type; |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1121 } | 1530 } |
| 1122 static FunctionElementImpl functionElement5(String functionName, List<ClassEle
ment> normalParameters) => functionElement3(functionName, null, normalParameters
, null); | 1531 static FunctionElementImpl functionElement5(String functionName, List<ClassEle
ment> normalParameters) => functionElement3(functionName, null, normalParameters
, null); |
| 1123 static FunctionElementImpl functionElement6(String functionName, List<ClassEle
ment> normalParameters, List<ClassElement> optionalParameters) => functionElemen
t3(functionName, null, normalParameters, optionalParameters); | 1532 static FunctionElementImpl functionElement6(String functionName, List<ClassEle
ment> normalParameters, List<ClassElement> optionalParameters) => functionElemen
t3(functionName, null, normalParameters, optionalParameters); |
| 1124 static FunctionElementImpl functionElement7(String functionName, List<ClassEle
ment> normalParameters, List<String> names, List<ClassElement> namedParameters)
=> functionElement4(functionName, null, normalParameters, names, namedParameters
); | 1533 static FunctionElementImpl functionElement7(String functionName, List<ClassEle
ment> normalParameters, List<String> names, List<ClassElement> namedParameters)
=> functionElement4(functionName, null, normalParameters, names, namedParameters
); |
| 1125 static ClassElementImpl get object { | 1534 static ClassElementImpl get object { |
| 1126 if (_objectElement == null) { | 1535 if (_objectElement == null) { |
| 1127 _objectElement = classElement("Object", (null as InterfaceType), []); | 1536 _objectElement = classElement("Object", (null as InterfaceType), []); |
| 1128 } | 1537 } |
| 1129 return _objectElement; | 1538 return _objectElement; |
| 1130 } | 1539 } |
| 1131 static PropertyAccessorElementImpl getterElement(String name, bool isStatic, T
ype2 type35) { | 1540 static PropertyAccessorElementImpl getterElement(String name, bool isStatic, T
ype2 type44) { |
| 1132 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier2(na
me)); | 1541 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier3(na
me)); |
| 1133 field.static = isStatic; | 1542 field.static = isStatic; |
| 1134 field.synthetic = true; | 1543 field.synthetic = true; |
| 1135 field.type = type35; | 1544 field.type = type44; |
| 1136 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); | 1545 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); |
| 1137 getter.getter = true; | 1546 getter.getter = true; |
| 1138 field.getter = getter; | 1547 field.getter = getter; |
| 1139 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); | 1548 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); |
| 1140 getterType.returnType = type35; | 1549 getterType.returnType = type44; |
| 1141 getter.type = getterType; | 1550 getter.type = getterType; |
| 1142 return getter; | 1551 return getter; |
| 1143 } | 1552 } |
| 1144 static ImportElementImpl importFor(LibraryElement importedLibrary5, PrefixElem
ent prefix13, List<NamespaceCombinator> combinators5) { | 1553 static ImportElementImpl importFor(LibraryElement importedLibrary5, PrefixElem
ent prefix13, List<NamespaceCombinator> combinators5) { |
| 1145 ImportElementImpl spec = new ImportElementImpl(); | 1554 ImportElementImpl spec = new ImportElementImpl(); |
| 1146 spec.importedLibrary = importedLibrary5; | 1555 spec.importedLibrary = importedLibrary5; |
| 1147 spec.prefix = prefix13; | 1556 spec.prefix = prefix13; |
| 1148 spec.combinators = combinators5; | 1557 spec.combinators = combinators5; |
| 1149 return spec; | 1558 return spec; |
| 1150 } | 1559 } |
| 1151 static LibraryElementImpl library(AnalysisContext context, String libraryName)
{ | 1560 static LibraryElementImpl library(AnalysisContext context, String libraryName)
{ |
| 1152 String fileName = "${libraryName}.dart"; | 1561 String fileName = "${libraryName}.dart"; |
| 1153 FileBasedSource source = new FileBasedSource.con1(context.sourceFactory, Fil
eUtilities2.createFile(fileName)); | 1562 FileBasedSource source = new FileBasedSource.con1(context.sourceFactory.cont
entCache, FileUtilities2.createFile(fileName)); |
| 1154 CompilationUnitElementImpl unit = new CompilationUnitElementImpl(fileName); | 1563 CompilationUnitElementImpl unit = new CompilationUnitElementImpl(fileName); |
| 1155 unit.source = source; | 1564 unit.source = source; |
| 1156 LibraryElementImpl library = new LibraryElementImpl(context, ASTFactory.libr
aryIdentifier2([libraryName])); | 1565 LibraryElementImpl library = new LibraryElementImpl(context, ASTFactory.libr
aryIdentifier2([libraryName])); |
| 1157 library.definingCompilationUnit = unit; | 1566 library.definingCompilationUnit = unit; |
| 1158 return library; | 1567 return library; |
| 1159 } | 1568 } |
| 1160 static LocalVariableElementImpl localVariableElement(Identifier name) => new L
ocalVariableElementImpl(name); | 1569 static LocalVariableElementImpl localVariableElement(Identifier name) => new L
ocalVariableElementImpl(name); |
| 1161 static LocalVariableElementImpl localVariableElement2(String name) => new Loca
lVariableElementImpl(ASTFactory.identifier2(name)); | 1570 static LocalVariableElementImpl localVariableElement2(String name) => new Loca
lVariableElementImpl(ASTFactory.identifier3(name)); |
| 1162 static MethodElementImpl methodElement(String methodName, Type2 returnType14,
List<Type2> argumentTypes) { | 1571 static MethodElementImpl methodElement(String methodName, Type2 returnType16,
List<Type2> argumentTypes) { |
| 1163 MethodElementImpl method = new MethodElementImpl.con1(ASTFactory.identifier2
(methodName)); | 1572 MethodElementImpl method = new MethodElementImpl.con1(ASTFactory.identifier3
(methodName)); |
| 1164 int count = argumentTypes.length; | 1573 int count = argumentTypes.length; |
| 1165 List<ParameterElement> parameters = new List<ParameterElement>(count); | 1574 List<ParameterElement> parameters = new List<ParameterElement>(count); |
| 1166 for (int i = 0; i < count; i++) { | 1575 for (int i = 0; i < count; i++) { |
| 1167 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.ident
ifier2("a${i}")); | 1576 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.ident
ifier3("a${i}")); |
| 1168 parameter.type = argumentTypes[i]; | 1577 parameter.type = argumentTypes[i]; |
| 1169 parameter.parameterKind = ParameterKind.REQUIRED; | 1578 parameter.parameterKind = ParameterKind.REQUIRED; |
| 1170 parameters[i] = parameter; | 1579 parameters[i] = parameter; |
| 1171 } | 1580 } |
| 1172 method.parameters = parameters; | 1581 method.parameters = parameters; |
| 1173 FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method); | 1582 FunctionTypeImpl methodType = new FunctionTypeImpl.con1(method); |
| 1174 methodType.normalParameterTypes = argumentTypes; | 1583 methodType.normalParameterTypes = argumentTypes; |
| 1175 methodType.returnType = returnType14; | 1584 methodType.returnType = returnType16; |
| 1176 method.type = methodType; | 1585 method.type = methodType; |
| 1177 return method; | 1586 return method; |
| 1178 } | 1587 } |
| 1179 static ParameterElementImpl namedParameter(String name) { | 1588 static ParameterElementImpl namedParameter(String name) { |
| 1180 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier2(name)); | 1589 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier3(name)); |
| 1181 parameter.parameterKind = ParameterKind.NAMED; | 1590 parameter.parameterKind = ParameterKind.NAMED; |
| 1182 return parameter; | 1591 return parameter; |
| 1183 } | 1592 } |
| 1184 static ParameterElementImpl positionalParameter(String name) { | 1593 static ParameterElementImpl positionalParameter(String name) { |
| 1185 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier2(name)); | 1594 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier3(name)); |
| 1186 parameter.parameterKind = ParameterKind.POSITIONAL; | 1595 parameter.parameterKind = ParameterKind.POSITIONAL; |
| 1187 return parameter; | 1596 return parameter; |
| 1188 } | 1597 } |
| 1189 static PrefixElementImpl prefix(String name) => new PrefixElementImpl(ASTFacto
ry.identifier2(name)); | 1598 static PrefixElementImpl prefix(String name) => new PrefixElementImpl(ASTFacto
ry.identifier3(name)); |
| 1190 static ParameterElementImpl requiredParameter(String name) { | 1599 static ParameterElementImpl requiredParameter(String name) { |
| 1191 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier2(name)); | 1600 ParameterElementImpl parameter = new ParameterElementImpl(ASTFactory.identif
ier3(name)); |
| 1192 parameter.parameterKind = ParameterKind.REQUIRED; | 1601 parameter.parameterKind = ParameterKind.REQUIRED; |
| 1193 return parameter; | 1602 return parameter; |
| 1194 } | 1603 } |
| 1195 static PropertyAccessorElementImpl setterElement(String name, bool isStatic, T
ype2 type36) { | 1604 static PropertyAccessorElementImpl setterElement(String name, bool isStatic, T
ype2 type45) { |
| 1196 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier2(na
me)); | 1605 FieldElementImpl field = new FieldElementImpl.con1(ASTFactory.identifier3(na
me)); |
| 1197 field.static = isStatic; | 1606 field.static = isStatic; |
| 1198 field.synthetic = true; | 1607 field.synthetic = true; |
| 1199 field.type = type36; | 1608 field.type = type45; |
| 1200 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); | 1609 PropertyAccessorElementImpl getter = new PropertyAccessorElementImpl.con2(fi
eld); |
| 1201 getter.getter = true; | 1610 getter.getter = true; |
| 1202 field.getter = getter; | 1611 field.getter = getter; |
| 1203 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); | 1612 FunctionTypeImpl getterType = new FunctionTypeImpl.con1(getter); |
| 1204 getterType.returnType = type36; | 1613 getterType.returnType = type45; |
| 1205 getter.type = getterType; | 1614 getter.type = getterType; |
| 1206 PropertyAccessorElementImpl setter = new PropertyAccessorElementImpl.con2(fi
eld); | 1615 PropertyAccessorElementImpl setter = new PropertyAccessorElementImpl.con2(fi
eld); |
| 1207 setter.setter = true; | 1616 setter.setter = true; |
| 1208 setter.synthetic = true; | 1617 setter.synthetic = true; |
| 1209 field.setter = setter; | 1618 field.setter = setter; |
| 1210 FunctionTypeImpl setterType = new FunctionTypeImpl.con1(getter); | 1619 FunctionTypeImpl setterType = new FunctionTypeImpl.con1(getter); |
| 1211 setterType.normalParameterTypes = <Type2> [type36]; | 1620 setterType.normalParameterTypes = <Type2> [type45]; |
| 1212 setterType.returnType = VoidTypeImpl.instance; | 1621 setterType.returnType = VoidTypeImpl.instance; |
| 1213 setter.type = setterType; | 1622 setter.type = setterType; |
| 1214 return setter; | 1623 return setter; |
| 1215 } | 1624 } |
| 1216 static TopLevelVariableElementImpl topLevelVariableElement(Identifier name) =>
new TopLevelVariableElementImpl.con1(name); | 1625 static TopLevelVariableElementImpl topLevelVariableElement(Identifier name) =>
new TopLevelVariableElementImpl.con1(name); |
| 1217 static TopLevelVariableElementImpl topLevelVariableElement2(String name) => ne
w TopLevelVariableElementImpl.con2(name); | 1626 static TopLevelVariableElementImpl topLevelVariableElement2(String name) => ne
w TopLevelVariableElementImpl.con2(name); |
| 1218 /** | 1627 /** |
| 1219 * Prevent the creation of instances of this class. | 1628 * Prevent the creation of instances of this class. |
| 1220 */ | 1629 */ |
| 1221 ElementFactory() { | 1630 ElementFactory() { |
| 1222 } | 1631 } |
| 1223 } | 1632 } |
| 1224 class ClassElementImplTest extends EngineTestCase { | 1633 class ClassElementImplTest extends EngineTestCase { |
| 1225 void test_allSupertypes_interface() { | 1634 void test_getAllSupertypes_interface() { |
| 1226 ClassElement elementA = ElementFactory.classElement2("A", []); | 1635 ClassElement classA = ElementFactory.classElement2("A", []); |
| 1227 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 1636 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 1228 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 1637 ClassElementImpl elementC = ElementFactory.classElement2("C", []); |
| 1229 InterfaceType typeObject = elementA.supertype; | 1638 InterfaceType typeObject = classA.supertype; |
| 1230 InterfaceType typeA = elementA.type; | 1639 InterfaceType typeA = classA.type; |
| 1231 InterfaceType typeB = elementB.type; | 1640 InterfaceType typeB = classB.type; |
| 1232 InterfaceType typeC = elementC.type; | 1641 InterfaceType typeC = elementC.type; |
| 1233 elementC.interfaces = <InterfaceType> [typeB]; | 1642 elementC.interfaces = <InterfaceType> [typeB]; |
| 1234 List<InterfaceType> supers = elementC.allSupertypes; | 1643 List<InterfaceType> supers = elementC.allSupertypes; |
| 1235 List<InterfaceType> types = new List<InterfaceType>(); | 1644 List<InterfaceType> types = new List<InterfaceType>(); |
| 1236 types.addAll(supers); | 1645 types.addAll(supers); |
| 1237 JUnitTestCase.assertTrue(types.contains(typeA)); | 1646 JUnitTestCase.assertTrue(types.contains(typeA)); |
| 1238 JUnitTestCase.assertTrue(types.contains(typeB)); | 1647 JUnitTestCase.assertTrue(types.contains(typeB)); |
| 1239 JUnitTestCase.assertTrue(types.contains(typeObject)); | 1648 JUnitTestCase.assertTrue(types.contains(typeObject)); |
| 1240 JUnitTestCase.assertFalse(types.contains(typeC)); | 1649 JUnitTestCase.assertFalse(types.contains(typeC)); |
| 1241 } | 1650 } |
| 1242 void test_allSupertypes_mixins() { | 1651 void test_getAllSupertypes_mixins() { |
| 1243 ClassElement elementA = ElementFactory.classElement2("A", []); | 1652 ClassElement classA = ElementFactory.classElement2("A", []); |
| 1244 ClassElement elementB = ElementFactory.classElement("B", elementA.type, []); | 1653 ClassElement classB = ElementFactory.classElement("B", classA.type, []); |
| 1245 ClassElementImpl elementC = ElementFactory.classElement2("C", []); | 1654 ClassElementImpl classC = ElementFactory.classElement2("C", []); |
| 1246 InterfaceType typeObject = elementA.supertype; | 1655 InterfaceType typeObject = classA.supertype; |
| 1247 InterfaceType typeA = elementA.type; | 1656 InterfaceType typeA = classA.type; |
| 1248 InterfaceType typeB = elementB.type; | 1657 InterfaceType typeB = classB.type; |
| 1249 InterfaceType typeC = elementC.type; | 1658 InterfaceType typeC = classC.type; |
| 1250 elementC.mixins = <InterfaceType> [typeB]; | 1659 classC.mixins = <InterfaceType> [typeB]; |
| 1251 List<InterfaceType> supers = elementC.allSupertypes; | 1660 List<InterfaceType> supers = classC.allSupertypes; |
| 1252 List<InterfaceType> types = new List<InterfaceType>(); | 1661 List<InterfaceType> types = new List<InterfaceType>(); |
| 1253 types.addAll(supers); | 1662 types.addAll(supers); |
| 1254 JUnitTestCase.assertFalse(types.contains(typeA)); | 1663 JUnitTestCase.assertFalse(types.contains(typeA)); |
| 1255 JUnitTestCase.assertTrue(types.contains(typeB)); | 1664 JUnitTestCase.assertTrue(types.contains(typeB)); |
| 1256 JUnitTestCase.assertTrue(types.contains(typeObject)); | 1665 JUnitTestCase.assertTrue(types.contains(typeObject)); |
| 1257 JUnitTestCase.assertFalse(types.contains(typeC)); | 1666 JUnitTestCase.assertFalse(types.contains(typeC)); |
| 1258 } | 1667 } |
| 1668 void test_getMethod_declared() { |
| 1669 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1670 String methodName = "m"; |
| 1671 MethodElement method = ElementFactory.methodElement(methodName, null, []); |
| 1672 classA.methods = <MethodElement> [method]; |
| 1673 JUnitTestCase.assertSame(method, classA.getMethod(methodName)); |
| 1674 } |
| 1675 void test_getMethod_undeclared() { |
| 1676 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1677 String methodName = "m"; |
| 1678 MethodElement method = ElementFactory.methodElement(methodName, null, []); |
| 1679 classA.methods = <MethodElement> [method]; |
| 1680 JUnitTestCase.assertNull(classA.getMethod("${methodName}x")); |
| 1681 } |
| 1259 void test_lookUpGetter_declared() { | 1682 void test_lookUpGetter_declared() { |
| 1260 LibraryElementImpl library6 = ElementFactory.library(new AnalysisContextImpl
(), "lib"); | 1683 LibraryElementImpl library6 = ElementFactory.library(createAnalysisContext()
, "lib"); |
| 1261 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1684 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1262 String getterName = "g"; | 1685 String getterName = "g"; |
| 1263 PropertyAccessorElement getter = ElementFactory.getterElement(getterName, fa
lse, null); | 1686 PropertyAccessorElement getter = ElementFactory.getterElement(getterName, fa
lse, null); |
| 1264 classA.accessors = <PropertyAccessorElement> [getter]; | 1687 classA.accessors = <PropertyAccessorElement> [getter]; |
| 1265 ((library6.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; | 1688 ((library6.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; |
| 1266 JUnitTestCase.assertSame(getter, classA.lookUpGetter(getterName, library6)); | 1689 JUnitTestCase.assertSame(getter, classA.lookUpGetter(getterName, library6)); |
| 1267 } | 1690 } |
| 1268 void test_lookUpGetter_inherited() { | 1691 void test_lookUpGetter_inherited() { |
| 1269 LibraryElementImpl library7 = ElementFactory.library(new AnalysisContextImpl
(), "lib"); | 1692 LibraryElementImpl library7 = ElementFactory.library(createAnalysisContext()
, "lib"); |
| 1270 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1693 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1271 String getterName = "g"; | 1694 String getterName = "g"; |
| 1272 PropertyAccessorElement getter = ElementFactory.getterElement(getterName, fa
lse, null); | 1695 PropertyAccessorElement getter = ElementFactory.getterElement(getterName, fa
lse, null); |
| 1273 classA.accessors = <PropertyAccessorElement> [getter]; | 1696 classA.accessors = <PropertyAccessorElement> [getter]; |
| 1274 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); | 1697 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 1275 ((library7.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA, classB]; | 1698 ((library7.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA, classB]; |
| 1276 JUnitTestCase.assertSame(getter, classB.lookUpGetter(getterName, library7)); | 1699 JUnitTestCase.assertSame(getter, classB.lookUpGetter(getterName, library7)); |
| 1277 } | 1700 } |
| 1278 void test_lookUpGetter_undeclared() { | 1701 void test_lookUpGetter_undeclared() { |
| 1279 LibraryElementImpl library8 = ElementFactory.library(new AnalysisContextImpl
(), "lib"); | 1702 LibraryElementImpl library8 = ElementFactory.library(createAnalysisContext()
, "lib"); |
| 1280 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1703 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1281 ((library8.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; | 1704 ((library8.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; |
| 1282 JUnitTestCase.assertNull(classA.lookUpGetter("g", library8)); | 1705 JUnitTestCase.assertNull(classA.lookUpGetter("g", library8)); |
| 1283 } | 1706 } |
| 1284 void test_lookUpMethod_declared() { | 1707 void test_lookUpMethod_declared() { |
| 1285 LibraryElementImpl library9 = ElementFactory.library(new AnalysisContextImpl
(), "lib"); | 1708 LibraryElementImpl library9 = ElementFactory.library(createAnalysisContext()
, "lib"); |
| 1286 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1709 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1287 String methodName = "m"; | 1710 String methodName = "m"; |
| 1288 MethodElement method = ElementFactory.methodElement(methodName, null, []); | 1711 MethodElement method = ElementFactory.methodElement(methodName, null, []); |
| 1289 classA.methods = <MethodElement> [method]; | 1712 classA.methods = <MethodElement> [method]; |
| 1290 ((library9.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; | 1713 ((library9.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classA]; |
| 1291 JUnitTestCase.assertSame(method, classA.lookUpMethod(methodName, library9)); | 1714 JUnitTestCase.assertSame(method, classA.lookUpMethod(methodName, library9)); |
| 1292 } | 1715 } |
| 1293 void test_lookUpMethod_inherited() { | 1716 void test_lookUpMethod_inherited() { |
| 1294 LibraryElementImpl library10 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1717 LibraryElementImpl library10 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1295 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1718 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1296 String methodName = "m"; | 1719 String methodName = "m"; |
| 1297 MethodElement method = ElementFactory.methodElement(methodName, null, []); | 1720 MethodElement method = ElementFactory.methodElement(methodName, null, []); |
| 1298 classA.methods = <MethodElement> [method]; | 1721 classA.methods = <MethodElement> [method]; |
| 1299 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); | 1722 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 1300 ((library10.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA, classB]; | 1723 ((library10.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA, classB]; |
| 1301 JUnitTestCase.assertSame(method, classB.lookUpMethod(methodName, library10))
; | 1724 JUnitTestCase.assertSame(method, classB.lookUpMethod(methodName, library10))
; |
| 1302 } | 1725 } |
| 1303 void test_lookUpMethod_undeclared() { | 1726 void test_lookUpMethod_undeclared() { |
| 1304 LibraryElementImpl library11 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1727 LibraryElementImpl library11 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1305 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1728 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1306 ((library11.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; | 1729 ((library11.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; |
| 1307 JUnitTestCase.assertNull(classA.lookUpMethod("m", library11)); | 1730 JUnitTestCase.assertNull(classA.lookUpMethod("m", library11)); |
| 1308 } | 1731 } |
| 1309 void test_lookUpSetter_declared() { | 1732 void test_lookUpSetter_declared() { |
| 1310 LibraryElementImpl library12 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1733 LibraryElementImpl library12 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1311 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1734 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1312 String setterName = "s"; | 1735 String setterName = "s"; |
| 1313 PropertyAccessorElement setter = ElementFactory.setterElement(setterName, fa
lse, null); | 1736 PropertyAccessorElement setter = ElementFactory.setterElement(setterName, fa
lse, null); |
| 1314 classA.accessors = <PropertyAccessorElement> [setter]; | 1737 classA.accessors = <PropertyAccessorElement> [setter]; |
| 1315 ((library12.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; | 1738 ((library12.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; |
| 1316 JUnitTestCase.assertSame(setter, classA.lookUpSetter(setterName, library12))
; | 1739 JUnitTestCase.assertSame(setter, classA.lookUpSetter(setterName, library12))
; |
| 1317 } | 1740 } |
| 1318 void test_lookUpSetter_inherited() { | 1741 void test_lookUpSetter_inherited() { |
| 1319 LibraryElementImpl library13 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1742 LibraryElementImpl library13 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1320 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1743 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1321 String setterName = "s"; | 1744 String setterName = "s"; |
| 1322 PropertyAccessorElement setter = ElementFactory.setterElement(setterName, fa
lse, null); | 1745 PropertyAccessorElement setter = ElementFactory.setterElement(setterName, fa
lse, null); |
| 1323 classA.accessors = <PropertyAccessorElement> [setter]; | 1746 classA.accessors = <PropertyAccessorElement> [setter]; |
| 1324 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); | 1747 ClassElementImpl classB = ElementFactory.classElement("B", classA.type, []); |
| 1325 ((library13.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA, classB]; | 1748 ((library13.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA, classB]; |
| 1326 JUnitTestCase.assertSame(setter, classB.lookUpSetter(setterName, library13))
; | 1749 JUnitTestCase.assertSame(setter, classB.lookUpSetter(setterName, library13))
; |
| 1327 } | 1750 } |
| 1328 void test_lookUpSetter_undeclared() { | 1751 void test_lookUpSetter_undeclared() { |
| 1329 LibraryElementImpl library14 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1752 LibraryElementImpl library14 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1330 ClassElementImpl classA = ElementFactory.classElement2("A", []); | 1753 ClassElementImpl classA = ElementFactory.classElement2("A", []); |
| 1331 ((library14.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; | 1754 ((library14.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classA]; |
| 1332 JUnitTestCase.assertNull(classA.lookUpSetter("s", library14)); | 1755 JUnitTestCase.assertNull(classA.lookUpSetter("s", library14)); |
| 1333 } | 1756 } |
| 1334 static dartSuite() { | 1757 static dartSuite() { |
| 1335 _ut.group('ClassElementImplTest', () { | 1758 _ut.group('ClassElementImplTest', () { |
| 1336 _ut.test('test_allSupertypes_interface', () { | 1759 _ut.test('test_getAllSupertypes_interface', () { |
| 1337 final __test = new ClassElementImplTest(); | 1760 final __test = new ClassElementImplTest(); |
| 1338 runJUnitTest(__test, __test.test_allSupertypes_interface); | 1761 runJUnitTest(__test, __test.test_getAllSupertypes_interface); |
| 1339 }); | 1762 }); |
| 1340 _ut.test('test_allSupertypes_mixins', () { | 1763 _ut.test('test_getAllSupertypes_mixins', () { |
| 1341 final __test = new ClassElementImplTest(); | 1764 final __test = new ClassElementImplTest(); |
| 1342 runJUnitTest(__test, __test.test_allSupertypes_mixins); | 1765 runJUnitTest(__test, __test.test_getAllSupertypes_mixins); |
| 1766 }); |
| 1767 _ut.test('test_getMethod_declared', () { |
| 1768 final __test = new ClassElementImplTest(); |
| 1769 runJUnitTest(__test, __test.test_getMethod_declared); |
| 1770 }); |
| 1771 _ut.test('test_getMethod_undeclared', () { |
| 1772 final __test = new ClassElementImplTest(); |
| 1773 runJUnitTest(__test, __test.test_getMethod_undeclared); |
| 1343 }); | 1774 }); |
| 1344 _ut.test('test_lookUpGetter_declared', () { | 1775 _ut.test('test_lookUpGetter_declared', () { |
| 1345 final __test = new ClassElementImplTest(); | 1776 final __test = new ClassElementImplTest(); |
| 1346 runJUnitTest(__test, __test.test_lookUpGetter_declared); | 1777 runJUnitTest(__test, __test.test_lookUpGetter_declared); |
| 1347 }); | 1778 }); |
| 1348 _ut.test('test_lookUpGetter_inherited', () { | 1779 _ut.test('test_lookUpGetter_inherited', () { |
| 1349 final __test = new ClassElementImplTest(); | 1780 final __test = new ClassElementImplTest(); |
| 1350 runJUnitTest(__test, __test.test_lookUpGetter_inherited); | 1781 runJUnitTest(__test, __test.test_lookUpGetter_inherited); |
| 1351 }); | 1782 }); |
| 1352 _ut.test('test_lookUpGetter_undeclared', () { | 1783 _ut.test('test_lookUpGetter_undeclared', () { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 1375 }); | 1806 }); |
| 1376 _ut.test('test_lookUpSetter_undeclared', () { | 1807 _ut.test('test_lookUpSetter_undeclared', () { |
| 1377 final __test = new ClassElementImplTest(); | 1808 final __test = new ClassElementImplTest(); |
| 1378 runJUnitTest(__test, __test.test_lookUpSetter_undeclared); | 1809 runJUnitTest(__test, __test.test_lookUpSetter_undeclared); |
| 1379 }); | 1810 }); |
| 1380 }); | 1811 }); |
| 1381 } | 1812 } |
| 1382 } | 1813 } |
| 1383 class ElementImplTest extends EngineTestCase { | 1814 class ElementImplTest extends EngineTestCase { |
| 1384 void test_equals() { | 1815 void test_equals() { |
| 1385 LibraryElementImpl library15 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1816 LibraryElementImpl library15 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1386 ClassElementImpl classElement = ElementFactory.classElement2("C", []); | 1817 ClassElementImpl classElement = ElementFactory.classElement2("C", []); |
| 1387 ((library15.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; | 1818 ((library15.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; |
| 1388 FieldElement field = ElementFactory.fieldElement("next", false, false, false
, classElement.type); | 1819 FieldElement field = ElementFactory.fieldElement("next", false, false, false
, classElement.type); |
| 1389 classElement.fields = <FieldElement> [field]; | 1820 classElement.fields = <FieldElement> [field]; |
| 1390 JUnitTestCase.assertTrue(field == field); | 1821 JUnitTestCase.assertTrue(field == field); |
| 1391 JUnitTestCase.assertFalse(field == field.getter); | 1822 JUnitTestCase.assertFalse(field == field.getter); |
| 1392 JUnitTestCase.assertFalse(field == field.setter); | 1823 JUnitTestCase.assertFalse(field == field.setter); |
| 1393 JUnitTestCase.assertFalse(field.getter == field.setter); | 1824 JUnitTestCase.assertFalse(field.getter == field.setter); |
| 1394 } | 1825 } |
| 1395 void test_isAccessibleIn_private_differentLibrary() { | 1826 void test_isAccessibleIn_private_differentLibrary() { |
| 1396 AnalysisContextImpl context = new AnalysisContextImpl(); | 1827 AnalysisContextImpl context = createAnalysisContext(); |
| 1397 LibraryElementImpl library1 = ElementFactory.library(context, "lib1"); | 1828 LibraryElementImpl library1 = ElementFactory.library(context, "lib1"); |
| 1398 ClassElement classElement = ElementFactory.classElement2("_C", []); | 1829 ClassElement classElement = ElementFactory.classElement2("_C", []); |
| 1399 ((library1.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classElement]; | 1830 ((library1.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classElement]; |
| 1400 LibraryElementImpl library2 = ElementFactory.library(context, "lib2"); | 1831 LibraryElementImpl library2 = ElementFactory.library(context, "lib2"); |
| 1401 JUnitTestCase.assertFalse(classElement.isAccessibleIn(library2)); | 1832 JUnitTestCase.assertFalse(classElement.isAccessibleIn(library2)); |
| 1402 } | 1833 } |
| 1403 void test_isAccessibleIn_private_sameLibrary() { | 1834 void test_isAccessibleIn_private_sameLibrary() { |
| 1404 LibraryElementImpl library16 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1835 LibraryElementImpl library16 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1405 ClassElement classElement = ElementFactory.classElement2("_C", []); | 1836 ClassElement classElement = ElementFactory.classElement2("_C", []); |
| 1406 ((library16.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; | 1837 ((library16.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; |
| 1407 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library16)); | 1838 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library16)); |
| 1408 } | 1839 } |
| 1409 void test_isAccessibleIn_public_differentLibrary() { | 1840 void test_isAccessibleIn_public_differentLibrary() { |
| 1410 AnalysisContextImpl context = new AnalysisContextImpl(); | 1841 AnalysisContextImpl context = createAnalysisContext(); |
| 1411 LibraryElementImpl library1 = ElementFactory.library(context, "lib1"); | 1842 LibraryElementImpl library1 = ElementFactory.library(context, "lib1"); |
| 1412 ClassElement classElement = ElementFactory.classElement2("C", []); | 1843 ClassElement classElement = ElementFactory.classElement2("C", []); |
| 1413 ((library1.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classElement]; | 1844 ((library1.definingCompilationUnit as CompilationUnitElementImpl)).types = <
ClassElement> [classElement]; |
| 1414 LibraryElementImpl library2 = ElementFactory.library(context, "lib2"); | 1845 LibraryElementImpl library2 = ElementFactory.library(context, "lib2"); |
| 1415 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library2)); | 1846 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library2)); |
| 1416 } | 1847 } |
| 1417 void test_isAccessibleIn_public_sameLibrary() { | 1848 void test_isAccessibleIn_public_sameLibrary() { |
| 1418 LibraryElementImpl library17 = ElementFactory.library(new AnalysisContextImp
l(), "lib"); | 1849 LibraryElementImpl library17 = ElementFactory.library(createAnalysisContext(
), "lib"); |
| 1419 ClassElement classElement = ElementFactory.classElement2("C", []); | 1850 ClassElement classElement = ElementFactory.classElement2("C", []); |
| 1420 ((library17.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; | 1851 ((library17.definingCompilationUnit as CompilationUnitElementImpl)).types =
<ClassElement> [classElement]; |
| 1421 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library17)); | 1852 JUnitTestCase.assertTrue(classElement.isAccessibleIn(library17)); |
| 1422 } | 1853 } |
| 1423 static dartSuite() { | 1854 static dartSuite() { |
| 1424 _ut.group('ElementImplTest', () { | 1855 _ut.group('ElementImplTest', () { |
| 1425 _ut.test('test_equals', () { | 1856 _ut.test('test_equals', () { |
| 1426 final __test = new ElementImplTest(); | 1857 final __test = new ElementImplTest(); |
| 1427 runJUnitTest(__test, __test.test_equals); | 1858 runJUnitTest(__test, __test.test_equals); |
| 1428 }); | 1859 }); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 1440 }); | 1871 }); |
| 1441 _ut.test('test_isAccessibleIn_public_sameLibrary', () { | 1872 _ut.test('test_isAccessibleIn_public_sameLibrary', () { |
| 1442 final __test = new ElementImplTest(); | 1873 final __test = new ElementImplTest(); |
| 1443 runJUnitTest(__test, __test.test_isAccessibleIn_public_sameLibrary); | 1874 runJUnitTest(__test, __test.test_isAccessibleIn_public_sameLibrary); |
| 1444 }); | 1875 }); |
| 1445 }); | 1876 }); |
| 1446 } | 1877 } |
| 1447 } | 1878 } |
| 1448 class FunctionTypeImplTest extends EngineTestCase { | 1879 class FunctionTypeImplTest extends EngineTestCase { |
| 1449 void test_creation() { | 1880 void test_creation() { |
| 1450 JUnitTestCase.assertNotNull(new FunctionTypeImpl.con1(new FunctionElementImp
l.con1(ASTFactory.identifier2("f")))); | 1881 JUnitTestCase.assertNotNull(new FunctionTypeImpl.con1(new FunctionElementImp
l.con1(ASTFactory.identifier3("f")))); |
| 1451 } | 1882 } |
| 1452 void test_getElement() { | 1883 void test_getElement() { |
| 1453 FunctionElementImpl typeElement = new FunctionElementImpl.con1(ASTFactory.id
entifier2("f")); | 1884 FunctionElementImpl typeElement = new FunctionElementImpl.con1(ASTFactory.id
entifier3("f")); |
| 1454 FunctionTypeImpl type = new FunctionTypeImpl.con1(typeElement); | 1885 FunctionTypeImpl type = new FunctionTypeImpl.con1(typeElement); |
| 1455 JUnitTestCase.assertEquals(typeElement, type.element); | 1886 JUnitTestCase.assertEquals(typeElement, type.element); |
| 1456 } | 1887 } |
| 1457 void test_getNamedParameterTypes() { | 1888 void test_getNamedParameterTypes() { |
| 1458 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 1889 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1459 Map<String, Type2> types = type.namedParameterTypes; | 1890 Map<String, Type2> types = type.namedParameterTypes; |
| 1460 EngineTestCase.assertSize2(0, types); | 1891 EngineTestCase.assertSize2(0, types); |
| 1461 } | 1892 } |
| 1462 void test_getNormalParameterTypes() { | 1893 void test_getNormalParameterTypes() { |
| 1463 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 1894 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1464 List<Type2> types = type.normalParameterTypes; | 1895 List<Type2> types = type.normalParameterTypes; |
| 1465 EngineTestCase.assertLength(0, types); | 1896 EngineTestCase.assertLength(0, types); |
| 1466 } | 1897 } |
| 1467 void test_getReturnType() { | 1898 void test_getReturnType() { |
| 1468 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 1899 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1469 Type2 returnType10 = type.returnType; | 1900 Type2 returnType12 = type.returnType; |
| 1470 JUnitTestCase.assertEquals(VoidTypeImpl.instance, returnType10); | 1901 JUnitTestCase.assertEquals(VoidTypeImpl.instance, returnType12); |
| 1471 } | 1902 } |
| 1472 void test_getTypeArguments() { | 1903 void test_getTypeArguments() { |
| 1473 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 1904 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1474 List<Type2> types = type.typeArguments; | 1905 List<Type2> types = type.typeArguments; |
| 1475 EngineTestCase.assertLength(0, types); | 1906 EngineTestCase.assertLength(0, types); |
| 1476 } | 1907 } |
| 1477 void test_hashCode_element() { | 1908 void test_hashCode_element() { |
| 1478 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 1909 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1479 type.hashCode; | 1910 type.hashCode; |
| 1480 } | 1911 } |
| 1481 void test_hashCode_noElement() { | 1912 void test_hashCode_noElement() { |
| 1482 FunctionTypeImpl type = new FunctionTypeImpl.con1((null as ExecutableElement
)); | 1913 FunctionTypeImpl type = new FunctionTypeImpl.con1((null as ExecutableElement
)); |
| 1483 type.hashCode; | 1914 type.hashCode; |
| 1484 } | 1915 } |
| 1485 void test_isSubtypeOf_baseCase_classFunction() { | 1916 void test_isSubtypeOf_baseCase_classFunction() { |
| 1486 ClassElementImpl functionElement = ElementFactory.classElement2("Function",
[]); | 1917 ClassElementImpl functionElement = ElementFactory.classElement2("Function",
[]); |
| 1487 InterfaceTypeImpl functionType = new InterfaceTypeImpl_14(functionElement); | 1918 InterfaceTypeImpl functionType = new InterfaceTypeImpl_18(functionElement); |
| 1488 FunctionType f = ElementFactory.functionElement("f").type; | 1919 FunctionType f = ElementFactory.functionElement("f").type; |
| 1489 JUnitTestCase.assertTrue(f.isSubtypeOf(functionType)); | 1920 JUnitTestCase.assertTrue(f.isSubtypeOf(functionType)); |
| 1490 } | 1921 } |
| 1491 void test_isSubtypeOf_baseCase_notFunctionType() { | 1922 void test_isSubtypeOf_baseCase_notFunctionType() { |
| 1492 FunctionType f = ElementFactory.functionElement("f").type; | 1923 FunctionType f = ElementFactory.functionElement("f").type; |
| 1493 InterfaceType t = ElementFactory.classElement2("C", []).type; | 1924 InterfaceType t = ElementFactory.classElement2("C", []).type; |
| 1494 JUnitTestCase.assertFalse(f.isSubtypeOf(t)); | 1925 JUnitTestCase.assertFalse(f.isSubtypeOf(t)); |
| 1495 } | 1926 } |
| 1496 void test_isSubtypeOf_baseCase_null() { | 1927 void test_isSubtypeOf_baseCase_null() { |
| 1497 FunctionType f = ElementFactory.functionElement("f").type; | 1928 FunctionType f = ElementFactory.functionElement("f").type; |
| (...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1645 JUnitTestCase.assertFalse(s.isSubtypeOf(t)); | 2076 JUnitTestCase.assertFalse(s.isSubtypeOf(t)); |
| 1646 } | 2077 } |
| 1647 void test_isSubtypeOf_wrongFunctionType_optional_named() { | 2078 void test_isSubtypeOf_wrongFunctionType_optional_named() { |
| 1648 ClassElement a = ElementFactory.classElement2("A", []); | 2079 ClassElement a = ElementFactory.classElement2("A", []); |
| 1649 FunctionType t = ElementFactory.functionElement6("t", null, <ClassElement> [
a]).type; | 2080 FunctionType t = ElementFactory.functionElement6("t", null, <ClassElement> [
a]).type; |
| 1650 FunctionType s = ElementFactory.functionElement7("s", null, <String> ["name"
], <ClassElement> [a]).type; | 2081 FunctionType s = ElementFactory.functionElement7("s", null, <String> ["name"
], <ClassElement> [a]).type; |
| 1651 JUnitTestCase.assertFalse(t.isSubtypeOf(s)); | 2082 JUnitTestCase.assertFalse(t.isSubtypeOf(s)); |
| 1652 JUnitTestCase.assertFalse(s.isSubtypeOf(t)); | 2083 JUnitTestCase.assertFalse(s.isSubtypeOf(t)); |
| 1653 } | 2084 } |
| 1654 void test_setNamedParameterTypes() { | 2085 void test_setNamedParameterTypes() { |
| 1655 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 2086 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1656 LinkedHashMap<String, Type2> expectedTypes = new LinkedHashMap<String, Type2
>(); | 2087 LinkedHashMap<String, Type2> expectedTypes = new LinkedHashMap<String, Type2
>(); |
| 1657 expectedTypes["a"] = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFact
ory.identifier2("C"))); | 2088 expectedTypes["a"] = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFact
ory.identifier3("C"))); |
| 1658 type.namedParameterTypes = expectedTypes; | 2089 type.namedParameterTypes = expectedTypes; |
| 1659 Map<String, Type2> types = type.namedParameterTypes; | 2090 Map<String, Type2> types = type.namedParameterTypes; |
| 1660 JUnitTestCase.assertEquals(expectedTypes, types); | 2091 JUnitTestCase.assertEquals(expectedTypes, types); |
| 1661 } | 2092 } |
| 1662 void test_setNormalParameterTypes() { | 2093 void test_setNormalParameterTypes() { |
| 1663 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 2094 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1664 List<Type2> expectedTypes = <Type2> [new InterfaceTypeImpl.con1(new ClassEle
mentImpl(ASTFactory.identifier2("C")))]; | 2095 List<Type2> expectedTypes = <Type2> [new InterfaceTypeImpl.con1(new ClassEle
mentImpl(ASTFactory.identifier3("C")))]; |
| 1665 type.normalParameterTypes = expectedTypes; | 2096 type.normalParameterTypes = expectedTypes; |
| 1666 List<Type2> types = type.normalParameterTypes; | 2097 List<Type2> types = type.normalParameterTypes; |
| 1667 JUnitTestCase.assertEquals(expectedTypes, types); | 2098 JUnitTestCase.assertEquals(expectedTypes, types); |
| 1668 } | 2099 } |
| 1669 void test_setReturnType() { | 2100 void test_setReturnType() { |
| 1670 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 2101 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1671 Type2 expectedType = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFact
ory.identifier2("C"))); | 2102 Type2 expectedType = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFact
ory.identifier3("C"))); |
| 1672 type.returnType = expectedType; | 2103 type.returnType = expectedType; |
| 1673 Type2 returnType11 = type.returnType; | 2104 Type2 returnType13 = type.returnType; |
| 1674 JUnitTestCase.assertEquals(expectedType, returnType11); | 2105 JUnitTestCase.assertEquals(expectedType, returnType13); |
| 1675 } | 2106 } |
| 1676 void test_setTypeArguments() { | 2107 void test_setTypeArguments() { |
| 1677 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier2("f"))); | 2108 FunctionTypeImpl type = new FunctionTypeImpl.con1(new FunctionElementImpl.co
n1(ASTFactory.identifier3("f"))); |
| 1678 Type2 expectedType = new TypeVariableTypeImpl(new TypeVariableElementImpl(AS
TFactory.identifier2("C"))); | 2109 Type2 expectedType = new TypeVariableTypeImpl(new TypeVariableElementImpl(AS
TFactory.identifier3("C"))); |
| 1679 type.typeArguments = <Type2> [expectedType]; | 2110 type.typeArguments = <Type2> [expectedType]; |
| 1680 List<Type2> arguments = type.typeArguments; | 2111 List<Type2> arguments = type.typeArguments; |
| 1681 EngineTestCase.assertLength(1, arguments); | 2112 EngineTestCase.assertLength(1, arguments); |
| 1682 JUnitTestCase.assertEquals(expectedType, arguments[0]); | 2113 JUnitTestCase.assertEquals(expectedType, arguments[0]); |
| 1683 } | 2114 } |
| 1684 void test_substitute2_equal() { | 2115 void test_substitute2_equal() { |
| 1685 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier2("f"))); | 2116 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier3("f"))); |
| 1686 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier2("E"))); | 2117 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier3("E"))); |
| 1687 functionType.returnType = parameterType; | 2118 functionType.returnType = parameterType; |
| 1688 functionType.normalParameterTypes = <Type2> [parameterType]; | 2119 functionType.normalParameterTypes = <Type2> [parameterType]; |
| 1689 functionType.optionalParameterTypes = <Type2> [parameterType]; | 2120 functionType.optionalParameterTypes = <Type2> [parameterType]; |
| 1690 LinkedHashMap<String, Type2> namedParameterTypes = new LinkedHashMap<String,
Type2>(); | 2121 LinkedHashMap<String, Type2> namedParameterTypes = new LinkedHashMap<String,
Type2>(); |
| 1691 String namedParameterName = "c"; | 2122 String namedParameterName = "c"; |
| 1692 namedParameterTypes[namedParameterName] = parameterType; | 2123 namedParameterTypes[namedParameterName] = parameterType; |
| 1693 functionType.namedParameterTypes = namedParameterTypes; | 2124 functionType.namedParameterTypes = namedParameterTypes; |
| 1694 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier2("D"))); | 2125 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier3("D"))); |
| 1695 FunctionType result = functionType.substitute2(<Type2> [argumentType], <Type
2> [parameterType]); | 2126 FunctionType result = functionType.substitute2(<Type2> [argumentType], <Type
2> [parameterType]); |
| 1696 JUnitTestCase.assertEquals(argumentType, result.returnType); | 2127 JUnitTestCase.assertEquals(argumentType, result.returnType); |
| 1697 List<Type2> normalParameters = result.normalParameterTypes; | 2128 List<Type2> normalParameters = result.normalParameterTypes; |
| 1698 EngineTestCase.assertLength(1, normalParameters); | 2129 EngineTestCase.assertLength(1, normalParameters); |
| 1699 JUnitTestCase.assertEquals(argumentType, normalParameters[0]); | 2130 JUnitTestCase.assertEquals(argumentType, normalParameters[0]); |
| 1700 List<Type2> optionalParameters = result.optionalParameterTypes; | 2131 List<Type2> optionalParameters = result.optionalParameterTypes; |
| 1701 EngineTestCase.assertLength(1, optionalParameters); | 2132 EngineTestCase.assertLength(1, optionalParameters); |
| 1702 JUnitTestCase.assertEquals(argumentType, optionalParameters[0]); | 2133 JUnitTestCase.assertEquals(argumentType, optionalParameters[0]); |
| 1703 Map<String, Type2> namedParameters = result.namedParameterTypes; | 2134 Map<String, Type2> namedParameters = result.namedParameterTypes; |
| 1704 EngineTestCase.assertSize2(1, namedParameters); | 2135 EngineTestCase.assertSize2(1, namedParameters); |
| 1705 JUnitTestCase.assertEquals(argumentType, namedParameters[namedParameterName]
); | 2136 JUnitTestCase.assertEquals(argumentType, namedParameters[namedParameterName]
); |
| 1706 } | 2137 } |
| 1707 void test_substitute2_notEqual() { | 2138 void test_substitute2_notEqual() { |
| 1708 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier2("f"))); | 2139 FunctionTypeImpl functionType = new FunctionTypeImpl.con1(new FunctionElemen
tImpl.con1(ASTFactory.identifier3("f"))); |
| 1709 Type2 returnType = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFactor
y.identifier2("R"))); | 2140 Type2 returnType = new InterfaceTypeImpl.con1(new ClassElementImpl(ASTFactor
y.identifier3("R"))); |
| 1710 Type2 normalParameterType = new InterfaceTypeImpl.con1(new ClassElementImpl(
ASTFactory.identifier2("A"))); | 2141 Type2 normalParameterType = new InterfaceTypeImpl.con1(new ClassElementImpl(
ASTFactory.identifier3("A"))); |
| 1711 Type2 optionalParameterType = new InterfaceTypeImpl.con1(new ClassElementImp
l(ASTFactory.identifier2("B"))); | 2142 Type2 optionalParameterType = new InterfaceTypeImpl.con1(new ClassElementImp
l(ASTFactory.identifier3("B"))); |
| 1712 Type2 namedParameterType = new InterfaceTypeImpl.con1(new ClassElementImpl(A
STFactory.identifier2("C"))); | 2143 Type2 namedParameterType = new InterfaceTypeImpl.con1(new ClassElementImpl(A
STFactory.identifier3("C"))); |
| 1713 functionType.returnType = returnType; | 2144 functionType.returnType = returnType; |
| 1714 functionType.normalParameterTypes = <Type2> [normalParameterType]; | 2145 functionType.normalParameterTypes = <Type2> [normalParameterType]; |
| 1715 functionType.optionalParameterTypes = <Type2> [optionalParameterType]; | 2146 functionType.optionalParameterTypes = <Type2> [optionalParameterType]; |
| 1716 LinkedHashMap<String, Type2> namedParameterTypes = new LinkedHashMap<String,
Type2>(); | 2147 LinkedHashMap<String, Type2> namedParameterTypes = new LinkedHashMap<String,
Type2>(); |
| 1717 String namedParameterName = "c"; | 2148 String namedParameterName = "c"; |
| 1718 namedParameterTypes[namedParameterName] = namedParameterType; | 2149 namedParameterTypes[namedParameterName] = namedParameterType; |
| 1719 functionType.namedParameterTypes = namedParameterTypes; | 2150 functionType.namedParameterTypes = namedParameterTypes; |
| 1720 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier2("D"))); | 2151 InterfaceTypeImpl argumentType = new InterfaceTypeImpl.con1(new ClassElement
Impl(ASTFactory.identifier3("D"))); |
| 1721 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier2("E"))); | 2152 TypeVariableTypeImpl parameterType = new TypeVariableTypeImpl(new TypeVariab
leElementImpl(ASTFactory.identifier3("E"))); |
| 1722 FunctionType result = functionType.substitute2(<Type2> [argumentType], <Type
2> [parameterType]); | 2153 FunctionType result = functionType.substitute2(<Type2> [argumentType], <Type
2> [parameterType]); |
| 1723 JUnitTestCase.assertEquals(returnType, result.returnType); | 2154 JUnitTestCase.assertEquals(returnType, result.returnType); |
| 1724 List<Type2> normalParameters = result.normalParameterTypes; | 2155 List<Type2> normalParameters = result.normalParameterTypes; |
| 1725 EngineTestCase.assertLength(1, normalParameters); | 2156 EngineTestCase.assertLength(1, normalParameters); |
| 1726 JUnitTestCase.assertEquals(normalParameterType, normalParameters[0]); | 2157 JUnitTestCase.assertEquals(normalParameterType, normalParameters[0]); |
| 1727 List<Type2> optionalParameters = result.optionalParameterTypes; | 2158 List<Type2> optionalParameters = result.optionalParameterTypes; |
| 1728 EngineTestCase.assertLength(1, optionalParameters); | 2159 EngineTestCase.assertLength(1, optionalParameters); |
| 1729 JUnitTestCase.assertEquals(optionalParameterType, optionalParameters[0]); | 2160 JUnitTestCase.assertEquals(optionalParameterType, optionalParameters[0]); |
| 1730 Map<String, Type2> namedParameters = result.namedParameterTypes; | 2161 Map<String, Type2> namedParameters = result.namedParameterTypes; |
| 1731 EngineTestCase.assertSize2(1, namedParameters); | 2162 EngineTestCase.assertSize2(1, namedParameters); |
| (...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1889 final __test = new FunctionTypeImplTest(); | 2320 final __test = new FunctionTypeImplTest(); |
| 1890 runJUnitTest(__test, __test.test_substitute2_equal); | 2321 runJUnitTest(__test, __test.test_substitute2_equal); |
| 1891 }); | 2322 }); |
| 1892 _ut.test('test_substitute2_notEqual', () { | 2323 _ut.test('test_substitute2_notEqual', () { |
| 1893 final __test = new FunctionTypeImplTest(); | 2324 final __test = new FunctionTypeImplTest(); |
| 1894 runJUnitTest(__test, __test.test_substitute2_notEqual); | 2325 runJUnitTest(__test, __test.test_substitute2_notEqual); |
| 1895 }); | 2326 }); |
| 1896 }); | 2327 }); |
| 1897 } | 2328 } |
| 1898 } | 2329 } |
| 1899 class InterfaceTypeImpl_14 extends InterfaceTypeImpl { | 2330 class InterfaceTypeImpl_18 extends InterfaceTypeImpl { |
| 1900 InterfaceTypeImpl_14(ClassElement arg0) : super.con1(arg0); | 2331 InterfaceTypeImpl_18(ClassElement arg0) : super.con1(arg0); |
| 1901 bool isDartCoreFunction() => true; | 2332 bool isDartCoreFunction() => true; |
| 1902 } | 2333 } |
| 1903 main() { | 2334 main() { |
| 1904 FunctionTypeImplTest.dartSuite(); | 2335 FunctionTypeImplTest.dartSuite(); |
| 1905 InterfaceTypeImplTest.dartSuite(); | 2336 InterfaceTypeImplTest.dartSuite(); |
| 1906 TypeVariableTypeImplTest.dartSuite(); | 2337 TypeVariableTypeImplTest.dartSuite(); |
| 1907 ClassElementImplTest.dartSuite(); | 2338 ClassElementImplTest.dartSuite(); |
| 1908 ElementLocationImplTest.dartSuite(); | 2339 ElementLocationImplTest.dartSuite(); |
| 1909 ElementImplTest.dartSuite(); | 2340 ElementImplTest.dartSuite(); |
| 1910 LibraryElementImplTest.dartSuite(); | 2341 LibraryElementImplTest.dartSuite(); |
| 1911 } | 2342 } |
| OLD | NEW |