Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: pkg/analyzer/test/src/dart/element/element_test.dart

Issue 2967203002: Remove CompilationUnitElement.getElementAt(). (Closed)
Patch Set: Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analyzer/lib/src/fasta/mock_element.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.test.src.dart.element.element_test; 5 library analyzer.test.src.dart.element.element_test;
6 6
7 import 'package:analyzer/dart/ast/ast.dart'; 7 import 'package:analyzer/dart/ast/ast.dart';
8 import 'package:analyzer/dart/constant/value.dart'; 8 import 'package:analyzer/dart/constant/value.dart';
9 import 'package:analyzer/dart/element/element.dart'; 9 import 'package:analyzer/dart/element/element.dart';
10 import 'package:analyzer/dart/element/type.dart'; 10 import 'package:analyzer/dart/element/type.dart';
(...skipping 946 matching lines...) Expand 10 before | Expand all | Expand 10 after
957 ClassElementImpl classB = ElementFactory.classElement("B", classA.type); 957 ClassElementImpl classB = ElementFactory.classElement("B", classA.type);
958 classA.supertype = classB.type; 958 classA.supertype = classB.type;
959 (library.definingCompilationUnit as CompilationUnitElementImpl).types = 959 (library.definingCompilationUnit as CompilationUnitElementImpl).types =
960 <ClassElement>[classA, classB]; 960 <ClassElement>[classA, classB];
961 expect(classA.lookUpSetter("s", library), isNull); 961 expect(classA.lookUpSetter("s", library), isNull);
962 } 962 }
963 } 963 }
964 964
965 @reflectiveTest 965 @reflectiveTest
966 class CompilationUnitElementImplTest extends EngineTestCase { 966 class CompilationUnitElementImplTest extends EngineTestCase {
967 void test_getElementAt() {
968 AnalysisContextHelper contextHelper = new AnalysisContextHelper();
969 AnalysisContext context = contextHelper.context;
970 String code = r'''
971 class A {
972 int field;
973 }
974 main() {
975 int localVar = 42;
976 }
977 ''';
978 Source libSource = contextHelper.addSource("/my_lib.dart", code);
979 // prepare library/unit elements
980 LibraryElement libraryElement = context.computeLibraryElement(libSource);
981 CompilationUnitElement unitElement = libraryElement.definingCompilationUnit;
982 // A
983 ClassElement elementA;
984 {
985 int offset = code.indexOf('A {');
986 elementA = unitElement.getElementAt(offset);
987 expect(elementA, isNotNull);
988 expect(elementA.enclosingElement, unitElement);
989 expect(elementA.name, 'A');
990 }
991 // A.field
992 {
993 int offset = code.indexOf('field;');
994 FieldElement element = unitElement.getElementAt(offset);
995 expect(element, isNotNull);
996 expect(element.enclosingElement, elementA);
997 expect(element.name, 'field');
998 }
999 // main
1000 FunctionElement mainElement;
1001 {
1002 int offset = code.indexOf('main() {');
1003 mainElement = unitElement.getElementAt(offset);
1004 expect(mainElement, isNotNull);
1005 expect(mainElement.enclosingElement, unitElement);
1006 expect(mainElement.name, 'main');
1007 }
1008 // main.localVar
1009 {
1010 int offset = code.indexOf('localVar');
1011 LocalVariableElement element = unitElement.getElementAt(offset);
1012 expect(element, isNotNull);
1013 expect(element.enclosingElement, mainElement);
1014 expect(element.name, 'localVar');
1015 }
1016 // null
1017 expect(unitElement.getElementAt(1000), isNull);
1018 }
1019
1020 void test_getElementAt_multipleUnitsInLibrary() {
1021 AnalysisContextHelper contextHelper = new AnalysisContextHelper();
1022 AnalysisContext context = contextHelper.context;
1023 Source libSource = contextHelper.addSource(
1024 "/my_lib.dart",
1025 r'''
1026 library my_lib;
1027 part 'unit_a.dart';
1028 part 'unit_b.dart';
1029 ''');
1030 Source unitSourceA =
1031 contextHelper.addSource("/unit_a.dart", 'part of my_lib;class A {}');
1032 Source unitSourceB =
1033 contextHelper.addSource("/unit_b.dart", 'part of my_lib;class B {}');
1034 int offset = 'part of my_lib;class A {}'.indexOf('A {}');
1035 // prepare library/unit elements
1036 context.computeLibraryElement(libSource);
1037 CompilationUnitElement unitElementA =
1038 context.getCompilationUnitElement(unitSourceA, libSource);
1039 CompilationUnitElement unitElementB =
1040 context.getCompilationUnitElement(unitSourceB, libSource);
1041 // A
1042 {
1043 ClassElement element = unitElementA.getElementAt(offset);
1044 expect(element, isNotNull);
1045 expect(element.enclosingElement, unitElementA);
1046 expect(element.name, 'A');
1047 }
1048 // B
1049 {
1050 ClassElement element = unitElementB.getElementAt(offset);
1051 expect(element, isNotNull);
1052 expect(element.enclosingElement, unitElementB);
1053 expect(element.name, 'B');
1054 }
1055 }
1056
1057 void test_getEnum_declared() { 967 void test_getEnum_declared() {
1058 TestTypeProvider typeProvider = new TestTypeProvider(); 968 TestTypeProvider typeProvider = new TestTypeProvider();
1059 CompilationUnitElementImpl unit = 969 CompilationUnitElementImpl unit =
1060 ElementFactory.compilationUnit("/lib.dart"); 970 ElementFactory.compilationUnit("/lib.dart");
1061 String enumName = "E"; 971 String enumName = "E";
1062 ClassElement enumElement = 972 ClassElement enumElement =
1063 ElementFactory.enumElement(typeProvider, enumName); 973 ElementFactory.enumElement(typeProvider, enumName);
1064 unit.enums = <ClassElement>[enumElement]; 974 unit.enums = <ClassElement>[enumElement];
1065 expect(unit.getEnum(enumName), same(enumElement)); 975 expect(unit.getEnum(enumName), same(enumElement));
1066 } 976 }
(...skipping 3440 matching lines...) Expand 10 before | Expand all | Expand 10 after
4507 } 4417 }
4508 4418
4509 class _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction 4419 class _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction
4510 extends InterfaceTypeImpl { 4420 extends InterfaceTypeImpl {
4511 _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction(ClassElement arg0) 4421 _FunctionTypeImplTest_isSubtypeOf_baseCase_classFunction(ClassElement arg0)
4512 : super(arg0); 4422 : super(arg0);
4513 4423
4514 @override 4424 @override
4515 bool get isDartCoreFunction => true; 4425 bool get isDartCoreFunction => true;
4516 } 4426 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/fasta/mock_element.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698