OLD | NEW |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |