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

Side by Side Diff: pkg/analyzer/test/generated/static_type_analyzer_test.dart

Issue 2043173002: Fix LUB computation in face of errors in code (issue 26631) (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 4 years, 6 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/generated/static_type_analyzer.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) 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.generated.static_type_analyzer_test; 5 library analyzer.test.generated.static_type_analyzer_test;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/dart/ast/ast.dart'; 9 import 'package:analyzer/dart/ast/ast.dart';
10 import 'package:analyzer/dart/ast/token.dart'; 10 import 'package:analyzer/dart/ast/token.dart';
(...skipping 1060 matching lines...) Expand 10 before | Expand all | Expand 10 after
1071 // [0] 1071 // [0]
1072 Expression node = AstFactory.listLiteral([_resolvedInteger(0)]); 1072 Expression node = AstFactory.listLiteral([_resolvedInteger(0)]);
1073 DartType resultType = _analyze(node); 1073 DartType resultType = _analyze(node);
1074 _assertType2( 1074 _assertType2(
1075 _typeProvider.listType 1075 _typeProvider.listType
1076 .instantiate(<DartType>[_typeProvider.dynamicType]), 1076 .instantiate(<DartType>[_typeProvider.dynamicType]),
1077 resultType); 1077 resultType);
1078 _listener.assertNoErrors(); 1078 _listener.assertNoErrors();
1079 } 1079 }
1080 1080
1081 void test_visitListLiteral_unresolved() {
1082 _analyzer = _createAnalyzer(strongMode: true);
1083 // [a] // where 'a' is not resolved
1084 Identifier identifier = AstFactory.identifier3('a');
1085 Expression node = AstFactory.listLiteral([identifier]);
1086 DartType resultType = _analyze(node);
1087 expect(resultType, isNull);
1088 _listener.assertNoErrors();
1089 }
1090
1091 void test_visitListLiteral_unresolved_multiple() {
1092 _analyzer = _createAnalyzer(strongMode: true);
1093 // [0, a, 1] // where 'a' is not resolved
1094 Identifier identifier = AstFactory.identifier3('a');
1095 Expression node = AstFactory.listLiteral([_resolvedInteger(0), identifier, _ resolvedInteger(1)]);
1096 DartType resultType = _analyze(node);
1097 _assertType2(
1098 _typeProvider.listType
1099 .instantiate(<DartType>[_typeProvider.intType]),
1100 resultType);
1101 _listener.assertNoErrors();
1102 }
1103
1081 void test_visitMapLiteral_empty() { 1104 void test_visitMapLiteral_empty() {
1082 // {} 1105 // {}
1083 Expression node = AstFactory.mapLiteral2(); 1106 Expression node = AstFactory.mapLiteral2();
1084 DartType resultType = _analyze(node); 1107 DartType resultType = _analyze(node);
1085 _assertType2( 1108 _assertType2(
1086 _typeProvider.mapType.instantiate( 1109 _typeProvider.mapType.instantiate(
1087 <DartType>[_typeProvider.dynamicType, _typeProvider.dynamicType]), 1110 <DartType>[_typeProvider.dynamicType, _typeProvider.dynamicType]),
1088 resultType); 1111 resultType);
1089 _listener.assertNoErrors(); 1112 _listener.assertNoErrors();
1090 } 1113 }
(...skipping 390 matching lines...) Expand 10 before | Expand all | Expand 10 after
1481 EngineTestCase.assertInstanceOf( 1504 EngineTestCase.assertInstanceOf(
1482 (obj) => obj is InterfaceTypeImpl, InterfaceTypeImpl, actualType); 1505 (obj) => obj is InterfaceTypeImpl, InterfaceTypeImpl, actualType);
1483 _assertType(expectedType, actualType as InterfaceTypeImpl); 1506 _assertType(expectedType, actualType as InterfaceTypeImpl);
1484 } 1507 }
1485 // TODO(brianwilkerson) Compare other kinds of types then make this a shared 1508 // TODO(brianwilkerson) Compare other kinds of types then make this a shared
1486 // utility method. 1509 // utility method.
1487 } 1510 }
1488 1511
1489 /** 1512 /**
1490 * Create the analyzer used by the tests. 1513 * Create the analyzer used by the tests.
1491 *
1492 * @return the analyzer to be used by the tests
1493 */ 1514 */
1494 StaticTypeAnalyzer _createAnalyzer() { 1515 StaticTypeAnalyzer _createAnalyzer({bool strongMode: false}) {
1495 InternalAnalysisContext context = AnalysisContextFactory.contextWithCore(); 1516 InternalAnalysisContext context;
1517 if (strongMode) {
1518 AnalysisOptionsImpl options = new AnalysisOptionsImpl();
1519 options.strongMode = true;
1520 context = AnalysisContextFactory.contextWithCoreAndOptions(options);
1521 } else {
1522 context = AnalysisContextFactory.contextWithCore();
1523 }
1496 FileBasedSource source = 1524 FileBasedSource source =
1497 new FileBasedSource(FileUtilities2.createFile("/lib.dart")); 1525 new FileBasedSource(FileUtilities2.createFile("/lib.dart"));
1498 CompilationUnitElementImpl definingCompilationUnit = 1526 CompilationUnitElementImpl definingCompilationUnit =
1499 new CompilationUnitElementImpl("lib.dart"); 1527 new CompilationUnitElementImpl("lib.dart");
1500 definingCompilationUnit.librarySource = 1528 definingCompilationUnit.librarySource =
1501 definingCompilationUnit.source = source; 1529 definingCompilationUnit.source = source;
1502 LibraryElementImpl definingLibrary = 1530 LibraryElementImpl definingLibrary =
1503 new LibraryElementImpl.forNode(context, null); 1531 new LibraryElementImpl.forNode(context, null);
1504 definingLibrary.definingCompilationUnit = definingCompilationUnit; 1532 definingLibrary.definingCompilationUnit = definingCompilationUnit;
1505 _typeProvider = new TestTypeProvider(context); 1533 _typeProvider = new TestTypeProvider(context);
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
1627 void _setType(FormalParameter parameter, DartType type) { 1655 void _setType(FormalParameter parameter, DartType type) {
1628 SimpleIdentifier identifier = parameter.identifier; 1656 SimpleIdentifier identifier = parameter.identifier;
1629 Element element = identifier.staticElement; 1657 Element element = identifier.staticElement;
1630 if (element is! ParameterElement) { 1658 if (element is! ParameterElement) {
1631 element = new ParameterElementImpl.forNode(identifier); 1659 element = new ParameterElementImpl.forNode(identifier);
1632 identifier.staticElement = element; 1660 identifier.staticElement = element;
1633 } 1661 }
1634 (element as ParameterElementImpl).type = type; 1662 (element as ParameterElementImpl).type = type;
1635 } 1663 }
1636 } 1664 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/static_type_analyzer.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698