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

Side by Side Diff: pkg/compiler/lib/src/resolution/resolution_strategy.dart

Issue 2934333002: More dart2js strong mode cleanup. (Closed)
Patch Set: Created 3 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
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 dart2js.resolution_strategy; 5 library dart2js.resolution_strategy;
6 6
7 import 'package:front_end/src/fasta/scanner.dart' show Token; 7 import 'package:front_end/src/fasta/scanner.dart' show Token;
8 8
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common_elements.dart'; 10 import '../common_elements.dart';
(...skipping 467 matching lines...) Expand 10 before | Expand all | Expand 10 after
478 "The class '${cls.name}' does not contain " 478 "The class '${cls.name}' does not contain "
479 "required constructor: '$name'."); 479 "required constructor: '$name'.");
480 } 480 }
481 return constructor?.declaration; 481 return constructor?.declaration;
482 } 482 }
483 483
484 @override 484 @override
485 void forEachClassMember( 485 void forEachClassMember(
486 ClassElement cls, void f(ClassElement declarer, MemberElement member)) { 486 ClassElement cls, void f(ClassElement declarer, MemberElement member)) {
487 cls.ensureResolved(_resolution); 487 cls.ensureResolved(_resolution);
488 cls.forEachMember((ClassElement declarer, MemberElement member) { 488 cls.forEachMember((ClassElement declarer, _member) {
489 MemberElement member = _member;
489 if (member.isSynthesized) return; 490 if (member.isSynthesized) return;
490 if (member.isMalformed) return; 491 if (member.isMalformed) return;
491 if (member.isConstructor) return; 492 if (member.isConstructor) return;
492 f(declarer, member); 493 f(declarer, member);
493 }, includeSuperAndInjectedMembers: true); 494 }, includeSuperAndInjectedMembers: true);
494 } 495 }
495 496
496 @override 497 @override
497 void forEachConstructor( 498 void forEachConstructor(
498 ClassElement cls, void f(ConstructorEntity constructor)) { 499 ClassElement cls, void f(ConstructorEntity constructor)) {
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
794 795
795 if (!classElement 796 if (!classElement
796 .implementsInterface(_commonElements.jsJavaScriptObjectClass)) { 797 .implementsInterface(_commonElements.jsJavaScriptObjectClass)) {
797 _compiler.reporter.reportErrorMessage(classElement, 798 _compiler.reporter.reportErrorMessage(classElement,
798 MessageKind.JS_INTEROP_CLASS_CANNOT_EXTEND_DART_CLASS, { 799 MessageKind.JS_INTEROP_CLASS_CANNOT_EXTEND_DART_CLASS, {
799 'cls': classElement.name, 800 'cls': classElement.name,
800 'superclass': classElement.superclass.name 801 'superclass': classElement.superclass.name
801 }); 802 });
802 } 803 }
803 804
804 classElement 805 classElement.forEachMember((ClassElement classElement, _member) {
805 .forEachMember((ClassElement classElement, MemberElement member) { 806 MemberElement member = _member;
806 String memberName = processJsInteropAnnotation(member); 807 String memberName = processJsInteropAnnotation(member);
807 if (memberName != null) { 808 if (memberName != null) {
808 nativeDataBuilder.setJsInteropMemberName(member, memberName); 809 nativeDataBuilder.setJsInteropMemberName(member, memberName);
809 } 810 }
810 811
811 if (!member.isSynthesized && 812 if (!member.isSynthesized &&
812 nativeBasicData.isJsInteropClass(classElement) && 813 nativeBasicData.isJsInteropClass(classElement) &&
813 member is MethodElement) { 814 member is MethodElement) {
814 MethodElement fn = member; 815 MethodElement fn = member;
815 if (!fn.isExternal && 816 if (!fn.isExternal &&
816 !fn.isAbstract && 817 !fn.isAbstract &&
817 !fn.isConstructor && 818 !fn.isConstructor &&
818 !fn.isStatic) { 819 !fn.isStatic) {
819 _compiler.reporter.reportErrorMessage( 820 _compiler.reporter.reportErrorMessage(
820 fn, 821 fn,
821 MessageKind.JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER, 822 MessageKind.JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER,
822 {'cls': classElement.name, 'member': member.name}); 823 {'cls': classElement.name, 'member': member.name});
823 } 824 }
824 825
825 if (fn.isFactoryConstructor && isAnonymous) { 826 if (fn.isFactoryConstructor && isAnonymous) {
826 fn.functionSignature 827 fn.functionSignature.orderedForEachParameter((_parameter) {
827 .orderedForEachParameter((ParameterElement parameter) { 828 ParameterElement parameter = _parameter;
828 if (!parameter.isNamed) { 829 if (!parameter.isNamed) {
829 _compiler.reporter.reportErrorMessage( 830 _compiler.reporter.reportErrorMessage(
830 parameter, 831 parameter,
831 MessageKind 832 MessageKind
832 .JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMEN TS, 833 .JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMEN TS,
833 {'parameter': parameter.name, 'cls': classElement.name}); 834 {'parameter': parameter.name, 'cls': classElement.name});
834 } 835 }
835 }); 836 });
836 } else { 837 } else {
837 checkFunctionParameters(fn); 838 checkFunctionParameters(fn);
(...skipping 18 matching lines...) Expand all
856 @override 857 @override
857 WorkItem createWorkItem(MemberElement element) { 858 WorkItem createWorkItem(MemberElement element) {
858 assert(element.isDeclaration, failedAt(element)); 859 assert(element.isDeclaration, failedAt(element));
859 if (element.isMalformed) return null; 860 if (element.isMalformed) return null;
860 861
861 assert(element is AnalyzableElement, 862 assert(element is AnalyzableElement,
862 failedAt(element, 'Element $element is not analyzable.')); 863 failedAt(element, 'Element $element is not analyzable.'));
863 return _resolution.createWorkItem(element); 864 return _resolution.createWorkItem(element);
864 } 865 }
865 } 866 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698