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

Side by Side Diff: pkg/analyzer/test/src/dart/constant/evaluation_test.dart

Issue 2154083002: Remove ConstantFinder constructor parameters. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 4 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
OLDNEW
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2016, 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.constant_test; 5 library analyzer.test.constant_test;
6 6
7 import 'package:analyzer/context/declared_variables.dart'; 7 import 'package:analyzer/context/declared_variables.dart';
8 import 'package:analyzer/dart/ast/ast.dart'; 8 import 'package:analyzer/dart/ast/ast.dart';
9 import 'package:analyzer/dart/ast/token.dart'; 9 import 'package:analyzer/dart/ast/token.dart';
10 import 'package:analyzer/dart/element/element.dart'; 10 import 'package:analyzer/dart/element/element.dart';
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 Source source = addSource(r''' 268 Source source = addSource(r'''
269 const int a = c; 269 const int a = c;
270 const int b = a; 270 const int b = a;
271 const int c = b;'''); 271 const int c = b;''');
272 LibraryElement libraryElement = resolve2(source); 272 LibraryElement libraryElement = resolve2(source);
273 CompilationUnit unit = 273 CompilationUnit unit =
274 analysisContext.resolveCompilationUnit(source, libraryElement); 274 analysisContext.resolveCompilationUnit(source, libraryElement);
275 analysisContext.computeErrors(source); 275 analysisContext.computeErrors(source);
276 expect(unit, isNotNull); 276 expect(unit, isNotNull);
277 ConstantValueComputer computer = _makeConstantValueComputer(); 277 ConstantValueComputer computer = _makeConstantValueComputer();
278 computer.add(unit, source, source); 278 computer.add(unit);
279 computer.computeValues(); 279 computer.computeValues();
280 NodeList<CompilationUnitMember> members = unit.declarations; 280 NodeList<CompilationUnitMember> members = unit.declarations;
281 expect(members, hasLength(3)); 281 expect(members, hasLength(3));
282 _validate(false, (members[0] as TopLevelVariableDeclaration).variables); 282 _validate(false, (members[0] as TopLevelVariableDeclaration).variables);
283 _validate(false, (members[1] as TopLevelVariableDeclaration).variables); 283 _validate(false, (members[1] as TopLevelVariableDeclaration).variables);
284 _validate(false, (members[2] as TopLevelVariableDeclaration).variables); 284 _validate(false, (members[2] as TopLevelVariableDeclaration).variables);
285 } finally { 285 } finally {
286 AnalysisEngine.instance.logger = Logger.NULL; 286 AnalysisEngine.instance.logger = Logger.NULL;
287 } 287 }
288 } 288 }
289 289
290 void test_computeValues_dependentVariables() { 290 void test_computeValues_dependentVariables() {
291 Source source = addSource(r''' 291 Source source = addSource(r'''
292 const int b = a; 292 const int b = a;
293 const int a = 0;'''); 293 const int a = 0;''');
294 LibraryElement libraryElement = resolve2(source); 294 LibraryElement libraryElement = resolve2(source);
295 CompilationUnit unit = 295 CompilationUnit unit =
296 analysisContext.resolveCompilationUnit(source, libraryElement); 296 analysisContext.resolveCompilationUnit(source, libraryElement);
297 expect(unit, isNotNull); 297 expect(unit, isNotNull);
298 ConstantValueComputer computer = _makeConstantValueComputer(); 298 ConstantValueComputer computer = _makeConstantValueComputer();
299 computer.add(unit, source, source); 299 computer.add(unit);
300 computer.computeValues(); 300 computer.computeValues();
301 NodeList<CompilationUnitMember> members = unit.declarations; 301 NodeList<CompilationUnitMember> members = unit.declarations;
302 expect(members, hasLength(2)); 302 expect(members, hasLength(2));
303 _validate(true, (members[0] as TopLevelVariableDeclaration).variables); 303 _validate(true, (members[0] as TopLevelVariableDeclaration).variables);
304 _validate(true, (members[1] as TopLevelVariableDeclaration).variables); 304 _validate(true, (members[1] as TopLevelVariableDeclaration).variables);
305 } 305 }
306 306
307 void test_computeValues_empty() { 307 void test_computeValues_empty() {
308 ConstantValueComputer computer = _makeConstantValueComputer(); 308 ConstantValueComputer computer = _makeConstantValueComputer();
309 computer.computeValues(); 309 computer.computeValues();
(...skipping 14 matching lines...) Expand all
324 const int b = a; 324 const int b = a;
325 const int d = c;'''); 325 const int d = c;''');
326 LibraryElement libraryElement = resolve2(librarySource); 326 LibraryElement libraryElement = resolve2(librarySource);
327 CompilationUnit libraryUnit = 327 CompilationUnit libraryUnit =
328 analysisContext.resolveCompilationUnit(librarySource, libraryElement); 328 analysisContext.resolveCompilationUnit(librarySource, libraryElement);
329 expect(libraryUnit, isNotNull); 329 expect(libraryUnit, isNotNull);
330 CompilationUnit partUnit = 330 CompilationUnit partUnit =
331 analysisContext.resolveCompilationUnit(partSource, libraryElement); 331 analysisContext.resolveCompilationUnit(partSource, libraryElement);
332 expect(partUnit, isNotNull); 332 expect(partUnit, isNotNull);
333 ConstantValueComputer computer = _makeConstantValueComputer(); 333 ConstantValueComputer computer = _makeConstantValueComputer();
334 computer.add(libraryUnit, librarySource, librarySource); 334 computer.add(libraryUnit);
335 computer.add(partUnit, partSource, librarySource); 335 computer.add(partUnit);
336 computer.computeValues(); 336 computer.computeValues();
337 NodeList<CompilationUnitMember> libraryMembers = libraryUnit.declarations; 337 NodeList<CompilationUnitMember> libraryMembers = libraryUnit.declarations;
338 expect(libraryMembers, hasLength(2)); 338 expect(libraryMembers, hasLength(2));
339 _validate( 339 _validate(
340 true, (libraryMembers[0] as TopLevelVariableDeclaration).variables); 340 true, (libraryMembers[0] as TopLevelVariableDeclaration).variables);
341 _validate( 341 _validate(
342 true, (libraryMembers[1] as TopLevelVariableDeclaration).variables); 342 true, (libraryMembers[1] as TopLevelVariableDeclaration).variables);
343 NodeList<CompilationUnitMember> partMembers = libraryUnit.declarations; 343 NodeList<CompilationUnitMember> partMembers = libraryUnit.declarations;
344 expect(partMembers, hasLength(2)); 344 expect(partMembers, hasLength(2));
345 _validate(true, (partMembers[0] as TopLevelVariableDeclaration).variables); 345 _validate(true, (partMembers[0] as TopLevelVariableDeclaration).variables);
346 _validate(true, (partMembers[1] as TopLevelVariableDeclaration).variables); 346 _validate(true, (partMembers[1] as TopLevelVariableDeclaration).variables);
347 } 347 }
348 348
349 void test_computeValues_singleVariable() { 349 void test_computeValues_singleVariable() {
350 Source source = addSource("const int a = 0;"); 350 Source source = addSource("const int a = 0;");
351 LibraryElement libraryElement = resolve2(source); 351 LibraryElement libraryElement = resolve2(source);
352 CompilationUnit unit = 352 CompilationUnit unit =
353 analysisContext.resolveCompilationUnit(source, libraryElement); 353 analysisContext.resolveCompilationUnit(source, libraryElement);
354 expect(unit, isNotNull); 354 expect(unit, isNotNull);
355 ConstantValueComputer computer = _makeConstantValueComputer(); 355 ConstantValueComputer computer = _makeConstantValueComputer();
356 computer.add(unit, source, source); 356 computer.add(unit);
357 computer.computeValues(); 357 computer.computeValues();
358 NodeList<CompilationUnitMember> members = unit.declarations; 358 NodeList<CompilationUnitMember> members = unit.declarations;
359 expect(members, hasLength(1)); 359 expect(members, hasLength(1));
360 _validate(true, (members[0] as TopLevelVariableDeclaration).variables); 360 _validate(true, (members[0] as TopLevelVariableDeclaration).variables);
361 } 361 }
362 362
363 void test_computeValues_value_depends_on_enum() { 363 void test_computeValues_value_depends_on_enum() {
364 Source source = addSource(''' 364 Source source = addSource('''
365 enum E { id0, id1 } 365 enum E { id0, id1 }
366 const E e = E.id0; 366 const E e = E.id0;
367 '''); 367 ''');
368 LibraryElement libraryElement = resolve2(source); 368 LibraryElement libraryElement = resolve2(source);
369 CompilationUnit unit = 369 CompilationUnit unit =
370 analysisContext.resolveCompilationUnit(source, libraryElement); 370 analysisContext.resolveCompilationUnit(source, libraryElement);
371 expect(unit, isNotNull); 371 expect(unit, isNotNull);
372 ConstantValueComputer computer = _makeConstantValueComputer(); 372 ConstantValueComputer computer = _makeConstantValueComputer();
373 computer.add(unit, source, source); 373 computer.add(unit);
374 computer.computeValues(); 374 computer.computeValues();
375 TopLevelVariableDeclaration declaration = unit.declarations 375 TopLevelVariableDeclaration declaration = unit.declarations
376 .firstWhere((member) => member is TopLevelVariableDeclaration); 376 .firstWhere((member) => member is TopLevelVariableDeclaration);
377 _validate(true, declaration.variables); 377 _validate(true, declaration.variables);
378 } 378 }
379 379
380 void test_dependencyOnConstructor() { 380 void test_dependencyOnConstructor() {
381 // x depends on "const A()" 381 // x depends on "const A()"
382 _assertProperDependencies(r''' 382 _assertProperDependencies(r'''
383 class A { 383 class A {
(...skipping 809 matching lines...) Expand 10 before | Expand all | Expand 10 after
1193 } 1193 }
1194 1194
1195 void _assertProperDependencies(String sourceText, 1195 void _assertProperDependencies(String sourceText,
1196 [List<ErrorCode> expectedErrorCodes = ErrorCode.EMPTY_LIST]) { 1196 [List<ErrorCode> expectedErrorCodes = ErrorCode.EMPTY_LIST]) {
1197 Source source = addSource(sourceText); 1197 Source source = addSource(sourceText);
1198 LibraryElement element = resolve2(source); 1198 LibraryElement element = resolve2(source);
1199 CompilationUnit unit = 1199 CompilationUnit unit =
1200 analysisContext.resolveCompilationUnit(source, element); 1200 analysisContext.resolveCompilationUnit(source, element);
1201 expect(unit, isNotNull); 1201 expect(unit, isNotNull);
1202 ConstantValueComputer computer = _makeConstantValueComputer(); 1202 ConstantValueComputer computer = _makeConstantValueComputer();
1203 computer.add(unit, source, source); 1203 computer.add(unit);
1204 computer.computeValues(); 1204 computer.computeValues();
1205 assertErrors(source, expectedErrorCodes); 1205 assertErrors(source, expectedErrorCodes);
1206 } 1206 }
1207 1207
1208 Map<String, DartObjectImpl> _assertType( 1208 Map<String, DartObjectImpl> _assertType(
1209 EvaluationResultImpl result, String typeName) { 1209 EvaluationResultImpl result, String typeName) {
1210 expect(result.value, isNotNull); 1210 expect(result.value, isNotNull);
1211 DartObjectImpl value = result.value; 1211 DartObjectImpl value = result.value;
1212 expect(value.type.displayName, typeName); 1212 expect(value.type.displayName, typeName);
1213 return value.fields; 1213 return value.fields;
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
1373 VariableDeclaration varDecl = 1373 VariableDeclaration varDecl =
1374 findTopLevelDeclaration(compilationUnit, name); 1374 findTopLevelDeclaration(compilationUnit, name);
1375 ConstTopLevelVariableElementImpl varElement = varDecl.element; 1375 ConstTopLevelVariableElementImpl varElement = varDecl.element;
1376 return varElement.evaluationResult; 1376 return varElement.evaluationResult;
1377 } 1377 }
1378 1378
1379 ConstantValueComputer _makeConstantValueComputer() { 1379 ConstantValueComputer _makeConstantValueComputer() {
1380 ConstantEvaluationValidator_ForTest validator = 1380 ConstantEvaluationValidator_ForTest validator =
1381 new ConstantEvaluationValidator_ForTest(analysisContext2); 1381 new ConstantEvaluationValidator_ForTest(analysisContext2);
1382 validator.computer = new ConstantValueComputer( 1382 validator.computer = new ConstantValueComputer(
1383 analysisContext2,
1384 analysisContext2.typeProvider, 1383 analysisContext2.typeProvider,
1385 analysisContext2.declaredVariables, 1384 analysisContext2.declaredVariables,
1386 validator, 1385 validator,
1387 analysisContext2.typeSystem); 1386 analysisContext2.typeSystem);
1388 return validator.computer; 1387 return validator.computer;
1389 } 1388 }
1390 1389
1391 void _validate(bool shouldBeValid, VariableDeclarationList declarationList) { 1390 void _validate(bool shouldBeValid, VariableDeclarationList declarationList) {
1392 for (VariableDeclaration declaration in declarationList.variables) { 1391 for (VariableDeclaration declaration in declarationList.variables) {
1393 VariableElementImpl element = declaration.element as VariableElementImpl; 1392 VariableElementImpl element = declaration.element as VariableElementImpl;
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1594 ErrorReporter errorReporter = new ErrorReporter(errorListener, source); 1593 ErrorReporter errorReporter = new ErrorReporter(errorListener, source);
1595 DartObjectImpl result = expression.accept(new ConstantVisitor( 1594 DartObjectImpl result = expression.accept(new ConstantVisitor(
1596 new ConstantEvaluationEngine(typeProvider, new DeclaredVariables(), 1595 new ConstantEvaluationEngine(typeProvider, new DeclaredVariables(),
1597 typeSystem: typeSystem), 1596 typeSystem: typeSystem),
1598 errorReporter, 1597 errorReporter,
1599 lexicalEnvironment: lexicalEnvironment)); 1598 lexicalEnvironment: lexicalEnvironment));
1600 errorListener.assertNoErrors(); 1599 errorListener.assertNoErrors();
1601 return result; 1600 return result;
1602 } 1601 }
1603 } 1602 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/task/dart.dart ('k') | pkg/analyzer/test/src/dart/constant/utilities_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698