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

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

Issue 1099953004: In constant evaluation, handle final vars initialized at declaration site. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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 | Annotate | Revision Log
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 engine.resolver_test; 5 library engine.resolver_test;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/src/generated/ast.dart'; 9 import 'package:analyzer/src/generated/ast.dart';
10 import 'package:analyzer/src/generated/element.dart'; 10 import 'package:analyzer/src/generated/element.dart';
(...skipping 895 matching lines...) Expand 10 before | Expand all | Expand 10 after
906 final int y; 906 final int y;
907 } 907 }
908 var v = const A('foo');'''); 908 var v = const A('foo');''');
909 resolve(source); 909 resolve(source);
910 assertErrors(source, [ 910 assertErrors(source, [
911 CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH 911 CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH
912 ]); 912 ]);
913 verify([source]); 913 verify([source]);
914 } 914 }
915 915
916 void test_fieldTypeMismatch_generic() {
917 Source source = addSource(r'''
918 class C<T> {
919 final T x = y;
920 const C();
921 }
922 const y = 1;
923 var v = const C<String>();
924 ''');
925 resolve(source);
926 assertErrors(source, [
927 CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
928 HintCode.INVALID_ASSIGNMENT
929 ]);
930 verify([source]);
931 }
932
916 void test_fieldTypeMismatch_unresolved() { 933 void test_fieldTypeMismatch_unresolved() {
917 Source source = addSource(r''' 934 Source source = addSource(r'''
918 class A { 935 class A {
919 const A(x) : y = x; 936 const A(x) : y = x;
920 final Unresolved y; 937 final Unresolved y;
921 } 938 }
922 var v = const A('foo');'''); 939 var v = const A('foo');''');
923 resolve(source); 940 resolve(source);
924 assertErrors(source, [ 941 assertErrors(source, [
925 CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH, 942 CheckedModeCompileTimeErrorCode.CONST_CONSTRUCTOR_FIELD_TYPE_MISMATCH,
926 StaticWarningCode.UNDEFINED_CLASS 943 StaticWarningCode.UNDEFINED_CLASS
927 ]); 944 ]);
928 verify([source]); 945 verify([source]);
929 } 946 }
930 947
948 void test_fieldTypeOk_generic() {
949 Source source = addSource(r'''
950 class C<T> {
951 final T x = y;
952 const C();
953 }
954 const y = 1;
955 var v = const C<int>();
956 ''');
957 resolve(source);
958 assertErrors(source, [HintCode.INVALID_ASSIGNMENT]);
959 verify([source]);
960 }
961
931 void test_fieldTypeOk_null() { 962 void test_fieldTypeOk_null() {
932 Source source = addSource(r''' 963 Source source = addSource(r'''
933 class A { 964 class A {
934 const A(x) : y = x; 965 const A(x) : y = x;
935 final int y; 966 final int y;
936 } 967 }
937 var v = const A(null);'''); 968 var v = const A(null);''');
938 resolve(source); 969 resolve(source);
939 assertNoErrors(source); 970 assertNoErrors(source);
940 verify([source]); 971 verify([source]);
(...skipping 12816 matching lines...) Expand 10 before | Expand all | Expand 10 after
13757 // check propagated type 13788 // check propagated type
13758 FunctionType propagatedType = node.propagatedType as FunctionType; 13789 FunctionType propagatedType = node.propagatedType as FunctionType;
13759 expect(propagatedType.returnType, test.typeProvider.stringType); 13790 expect(propagatedType.returnType, test.typeProvider.stringType);
13760 } on AnalysisException catch (e, stackTrace) { 13791 } on AnalysisException catch (e, stackTrace) {
13761 thrownException[0] = new CaughtException(e, stackTrace); 13792 thrownException[0] = new CaughtException(e, stackTrace);
13762 } 13793 }
13763 } 13794 }
13764 return null; 13795 return null;
13765 } 13796 }
13766 } 13797 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698