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

Side by Side Diff: pkg/compiler/lib/src/native/behavior.dart

Issue 2975433002: Assert that we don't mix K and J elements (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
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 import '../common.dart'; 5 import '../common.dart';
6 import '../common/backend_api.dart' show ForeignResolver; 6 import '../common/backend_api.dart' show ForeignResolver;
7 import '../common/resolution.dart' show ParsingContext, Resolution; 7 import '../common/resolution.dart' show ParsingContext, Resolution;
8 import '../compiler.dart' show Compiler; 8 import '../compiler.dart' show Compiler;
9 import '../constants/values.dart'; 9 import '../constants/values.dart';
10 import '../common_elements.dart' show CommonElements; 10 import '../common_elements.dart' show CommonElements;
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 static NativeBehavior ofMethodElement( 767 static NativeBehavior ofMethodElement(
768 MethodElement element, Compiler compiler, 768 MethodElement element, Compiler compiler,
769 {bool isJsInterop}) { 769 {bool isJsInterop}) {
770 ResolutionFunctionType type = element.computeType(compiler.resolution); 770 ResolutionFunctionType type = element.computeType(compiler.resolution);
771 List<ConstantValue> metadata = <ConstantValue>[]; 771 List<ConstantValue> metadata = <ConstantValue>[];
772 for (MetadataAnnotation annotation in element.implementation.metadata) { 772 for (MetadataAnnotation annotation in element.implementation.metadata) {
773 annotation.ensureResolved(compiler.resolution); 773 annotation.ensureResolved(compiler.resolution);
774 metadata.add(compiler.constants.getConstantValue(annotation.constant)); 774 metadata.add(compiler.constants.getConstantValue(annotation.constant));
775 } 775 }
776 776
777 BehaviorBuilder builder = 777 BehaviorBuilder builder = new ResolverBehaviorBuilder(
778 new ResolverBehaviorBuilder(compiler, compiler.backend.nativeBasicData); 778 compiler, compiler.frontendStrategy.nativeBasicData);
779 return builder.buildMethodBehavior( 779 return builder.buildMethodBehavior(
780 type, metadata, lookupFromElement(compiler.resolution, element), 780 type, metadata, lookupFromElement(compiler.resolution, element),
781 isJsInterop: isJsInterop); 781 isJsInterop: isJsInterop);
782 } 782 }
783 783
784 static NativeBehavior ofFieldElementLoad( 784 static NativeBehavior ofFieldElementLoad(
785 MemberElement element, Compiler compiler, 785 MemberElement element, Compiler compiler,
786 {bool isJsInterop}) { 786 {bool isJsInterop}) {
787 Resolution resolution = compiler.resolution; 787 Resolution resolution = compiler.resolution;
788 ResolutionDartType type = element.computeType(resolution); 788 ResolutionDartType type = element.computeType(resolution);
789 List<ConstantValue> metadata = <ConstantValue>[]; 789 List<ConstantValue> metadata = <ConstantValue>[];
790 for (MetadataAnnotation annotation in element.implementation.metadata) { 790 for (MetadataAnnotation annotation in element.implementation.metadata) {
791 annotation.ensureResolved(compiler.resolution); 791 annotation.ensureResolved(compiler.resolution);
792 metadata.add(compiler.constants.getConstantValue(annotation.constant)); 792 metadata.add(compiler.constants.getConstantValue(annotation.constant));
793 } 793 }
794 794
795 BehaviorBuilder builder = 795 BehaviorBuilder builder = new ResolverBehaviorBuilder(
796 new ResolverBehaviorBuilder(compiler, compiler.backend.nativeBasicData); 796 compiler, compiler.frontendStrategy.nativeBasicData);
797 return builder.buildFieldLoadBehavior( 797 return builder.buildFieldLoadBehavior(
798 type, metadata, lookupFromElement(resolution, element), 798 type, metadata, lookupFromElement(resolution, element),
799 isJsInterop: isJsInterop); 799 isJsInterop: isJsInterop);
800 } 800 }
801 801
802 static NativeBehavior ofFieldElementStore( 802 static NativeBehavior ofFieldElementStore(
803 MemberElement field, Compiler compiler) { 803 MemberElement field, Compiler compiler) {
804 BehaviorBuilder builder = 804 BehaviorBuilder builder = new ResolverBehaviorBuilder(
805 new ResolverBehaviorBuilder(compiler, compiler.backend.nativeBasicData); 805 compiler, compiler.frontendStrategy.nativeBasicData);
806 ResolutionDartType type = field.computeType(compiler.resolution); 806 ResolutionDartType type = field.computeType(compiler.resolution);
807 return builder.buildFieldStoreBehavior(type); 807 return builder.buildFieldStoreBehavior(type);
808 } 808 }
809 809
810 static TypeLookup lookupFromElement(Resolution resolution, Element element) { 810 static TypeLookup lookupFromElement(Resolution resolution, Element element) {
811 ResolutionDartType lookup(String name, {bool required}) { 811 ResolutionDartType lookup(String name, {bool required}) {
812 Element e = element.buildScope().lookup(name); 812 Element e = element.buildScope().lookup(name);
813 if (e == null || e is! ClassElement) { 813 if (e == null || e is! ClassElement) {
814 if (required) { 814 if (required) {
815 resolution.reporter.reportErrorMessage(element, MessageKind.GENERIC, 815 resolution.reporter.reportErrorMessage(element, MessageKind.GENERIC,
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
1045 @override 1045 @override
1046 bool get trustJSInteropTypeAnnotations => 1046 bool get trustJSInteropTypeAnnotations =>
1047 compiler.options.trustJSInteropTypeAnnotations; 1047 compiler.options.trustJSInteropTypeAnnotations;
1048 1048
1049 @override 1049 @override
1050 DiagnosticReporter get reporter => compiler.reporter; 1050 DiagnosticReporter get reporter => compiler.reporter;
1051 1051
1052 @override 1052 @override
1053 Resolution get resolution => compiler.resolution; 1053 Resolution get resolution => compiler.resolution;
1054 } 1054 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698