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

Side by Side Diff: pkg/kernel/lib/type_checker.dart

Issue 2767773004: Add Vector type to Kernel (Closed)
Patch Set: Update binary.md file to include Vector AST nodes Created 3 years, 9 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 library kernel.type_checker; 4 library kernel.type_checker;
5 5
6 import 'ast.dart'; 6 import 'ast.dart';
7 import 'class_hierarchy.dart'; 7 import 'class_hierarchy.dart';
8 import 'core_types.dart'; 8 import 'core_types.dart';
9 import 'type_algebra.dart'; 9 import 'type_algebra.dart';
10 import 'type_environment.dart'; 10 import 'type_environment.dart';
(...skipping 672 matching lines...) Expand 10 before | Expand all | Expand 10 after
683 DartType visitLoadLibrary(LoadLibrary node) { 683 DartType visitLoadLibrary(LoadLibrary node) {
684 return environment.futureType(const DynamicType()); 684 return environment.futureType(const DynamicType());
685 } 685 }
686 686
687 @override 687 @override
688 DartType visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) { 688 DartType visitCheckLibraryIsLoaded(CheckLibraryIsLoaded node) {
689 return environment.objectType; 689 return environment.objectType;
690 } 690 }
691 691
692 @override 692 @override
693 DartType visitVectorGet(VectorGet node) {
694 var type = visitExpression(node.vectorExpression);
695 if (type is! VectorType) {
696 fail(
697 node.vectorExpression,
698 'The type of vector-expression in vector-get node is expected to be '
699 'VectorType, but $type found');
700 }
701 return const DynamicType();
702 }
703
704 @override
705 visitVectorSet(VectorSet node) {
706 var type = visitExpression(node.vectorExpression);
707 if (type is! VectorType) {
708 fail(
709 node.vectorExpression,
710 'The type of vector-expression in vector-set node is expected to be '
711 'VectorType, but $type found');
712 }
713 return visitExpression(node.value);
714 }
715
716 @override
717 visitVectorCopy(VectorCopy node) {
718 var type = visitExpression(node.vectorExpression);
719 if (type is! VectorType) {
720 fail(
721 node.vectorExpression,
722 'The type of vector-expression in vector-copy node is exected to be '
723 'VectorType, but $type found');
724 }
725 return const VectorType();
726 }
727
728 @override
729 DartType visitVectorCreation(VectorCreation node) {
730 return const VectorType();
731 }
732
733 @override
693 visitAssertStatement(AssertStatement node) { 734 visitAssertStatement(AssertStatement node) {
694 visitExpression(node.condition); 735 visitExpression(node.condition);
695 if (node.message != null) { 736 if (node.message != null) {
696 visitExpression(node.message); 737 visitExpression(node.message);
697 } 738 }
698 } 739 }
699 740
700 @override 741 @override
701 visitBlock(Block node) { 742 visitBlock(Block node) {
702 node.statements.forEach(visitStatement); 743 node.statements.forEach(visitStatement);
(...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after
902 } 943 }
903 944
904 @override 945 @override
905 visitLocalInitializer(LocalInitializer node) { 946 visitLocalInitializer(LocalInitializer node) {
906 visitVariableDeclaration(node.variable); 947 visitVariableDeclaration(node.variable);
907 } 948 }
908 949
909 @override 950 @override
910 visitInvalidInitializer(InvalidInitializer node) {} 951 visitInvalidInitializer(InvalidInitializer node) {}
911 } 952 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698