Skip to content

Commit 4e25692

Browse files
scheglovCommit Queue
authored and
Commit Queue
committed
Fine. Rename recording methods in RequirementsManifest.
Change-Id: I3402e9b641978cd3004cc5d2be4b8b303fddf8a7 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/430541 Commit-Queue: Konstantin Shcheglov <[email protected]> Reviewed-by: Brian Wilkerson <[email protected]>
1 parent b55b2bb commit 4e25692

File tree

4 files changed

+77
-80
lines changed

4 files changed

+77
-80
lines changed

pkg/analyzer/lib/src/dart/element/element.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5083,7 +5083,7 @@ abstract class InterfaceElementImpl2 extends InstanceElementImpl2
50835083

50845084
@override
50855085
ConstructorElementImpl2? getNamedConstructor2(String name) {
5086-
globalResultRequirements?.notify_interfaceElement_getNamedConstructor(
5086+
globalResultRequirements?.record_interfaceElement_getNamedConstructor(
50875087
element: this,
50885088
name: name,
50895089
);

pkg/analyzer/lib/src/dart/element/inheritance_manager3.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ class InheritanceManager3 {
353353
}
354354

355355
var result = interface.map[name];
356-
globalResultRequirements?.notifyInterfaceRequest(
356+
globalResultRequirements?.record_interface_getMember(
357357
element: element.asElement2,
358358
nameObj: name,
359359
methodElement: result?.asElement2,

pkg/analyzer/lib/src/dart/element/scope.dart

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -563,12 +563,10 @@ class PrefixScope implements Scope {
563563
}
564564

565565
if (globalResultRequirements case var resultRequirements?) {
566-
for (var importedLibrary in _importedLibraries) {
567-
resultRequirements.notifyRequest(
568-
importedLibrary: importedLibrary,
569-
nameStr: id,
570-
);
571-
}
566+
resultRequirements.record_importPrefixScope_lookup(
567+
importedLibraries: _importedLibraries,
568+
id: id,
569+
);
572570
}
573571

574572
var getter = _getters[id];

pkg/analyzer/lib/src/fine/requirements.dart

Lines changed: 71 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import 'package:analyzer/dart/element/element.dart';
66
import 'package:analyzer/src/dart/element/element.dart';
7-
import 'package:analyzer/src/dart/element/inheritance_manager3.dart';
87
import 'package:analyzer/src/dart/resolver/scope.dart';
98
import 'package:analyzer/src/fine/library_manifest.dart';
109
import 'package:analyzer/src/fine/lookup_name.dart';
@@ -564,77 +563,6 @@ class RequirementsManifest {
564563
return null;
565564
}
566565

567-
void notify_interfaceElement_getNamedConstructor({
568-
required InterfaceElementImpl2 element,
569-
required String name,
570-
}) {
571-
var itemRequirements = _getInterfaceItem(element);
572-
if (itemRequirements == null) {
573-
return;
574-
}
575-
576-
var item = itemRequirements.item;
577-
var requirements = itemRequirements.requirements;
578-
579-
var constructorName = name.asLookupName;
580-
var constructorId = item.getConstructorId(constructorName);
581-
requirements.constructors[constructorName] = constructorId;
582-
}
583-
584-
/// This method is invoked by [InheritanceManager3] to notify the collector
585-
/// that a member with [nameObj] was requested from the [element].
586-
void notifyInterfaceRequest({
587-
required InterfaceElementImpl2 element,
588-
required Name nameObj,
589-
required ExecutableElement? methodElement,
590-
}) {
591-
// Skip private names, cannot be used outside this library.
592-
if (!nameObj.isPublic) {
593-
return;
594-
}
595-
596-
var itemRequirements = _getInterfaceItem(element);
597-
if (itemRequirements == null) {
598-
return;
599-
}
600-
601-
var item = itemRequirements.item;
602-
var requirements = itemRequirements.requirements;
603-
604-
var methodName = nameObj.name.asLookupName;
605-
var methodId = item.getInterfaceMethodId(methodName);
606-
requirements.methods[methodName] = methodId;
607-
608-
// Check for consistency between the actual interface and manifest.
609-
if (methodElement != null) {
610-
if (methodId == null) {
611-
var qName = _qualifiedMethodName(element, methodName);
612-
throw StateError('Expected ID for $qName');
613-
}
614-
} else {
615-
if (methodId != null) {
616-
var qName = _qualifiedMethodName(element, methodName);
617-
throw StateError('Expected no ID for $qName');
618-
}
619-
}
620-
621-
requirements.methods[methodName] = methodId;
622-
}
623-
624-
/// This method is invoked by an import scope to notify the collector that
625-
/// the name [nameStr] was requested from [importedLibrary].
626-
void notifyRequest({
627-
required LibraryElementImpl importedLibrary,
628-
required String nameStr,
629-
}) {
630-
if (importedLibrary.manifest case var manifest?) {
631-
var uri = importedLibrary.uri;
632-
var nameToId = topLevels[uri] ??= {};
633-
var name = nameStr.asLookupName;
634-
nameToId[name] = manifest.getExportedId(name);
635-
}
636-
}
637-
638566
void record_classElement_allSubtypes({required ClassElementImpl2 element}) {
639567
// TODO(scheglov): implement.
640568
}
@@ -653,6 +581,22 @@ class RequirementsManifest {
653581
// TODO(scheglov): implement.
654582
}
655583

584+
/// Record that [id] was looked up in the import prefix scope that
585+
/// imports [importedLibraries].
586+
void record_importPrefixScope_lookup({
587+
required List<LibraryElementImpl> importedLibraries,
588+
required String id,
589+
}) {
590+
var lookupName = id.asLookupName;
591+
for (var importedLibrary in importedLibraries) {
592+
if (importedLibrary.manifest case var manifest?) {
593+
var uri = importedLibrary.uri;
594+
var nameToId = topLevels[uri] ??= {};
595+
nameToId[lookupName] = manifest.getExportedId(lookupName);
596+
}
597+
}
598+
}
599+
656600
void record_instanceElement_getField({
657601
required InstanceElementImpl2 element,
658602
required String name,
@@ -722,6 +666,61 @@ class RequirementsManifest {
722666
requirements.requestedSetters[methodName] = methodId;
723667
}
724668

669+
/// Record that a member with [nameObj] was requested from the interface
670+
/// of [element]. The [methodElement] is used for consistency checking.
671+
void record_interface_getMember({
672+
required InterfaceElementImpl2 element,
673+
required Name nameObj,
674+
required ExecutableElement? methodElement,
675+
}) {
676+
// Skip private names, cannot be used outside this library.
677+
if (!nameObj.isPublic) {
678+
return;
679+
}
680+
681+
var itemRequirements = _getInterfaceItem(element);
682+
if (itemRequirements == null) {
683+
return;
684+
}
685+
686+
var item = itemRequirements.item;
687+
var requirements = itemRequirements.requirements;
688+
689+
var methodName = nameObj.name.asLookupName;
690+
var methodId = item.getInterfaceMethodId(methodName);
691+
requirements.methods[methodName] = methodId;
692+
693+
// Check for consistency between the actual interface and manifest.
694+
if (methodElement != null) {
695+
if (methodId == null) {
696+
var qName = _qualifiedMethodName(element, methodName);
697+
throw StateError('Expected ID for $qName');
698+
}
699+
} else {
700+
if (methodId != null) {
701+
var qName = _qualifiedMethodName(element, methodName);
702+
throw StateError('Expected no ID for $qName');
703+
}
704+
}
705+
}
706+
707+
void record_interfaceElement_getNamedConstructor({
708+
required InterfaceElementImpl2 element,
709+
required String name,
710+
}) {
711+
var itemRequirements = _getInterfaceItem(element);
712+
if (itemRequirements == null) {
713+
return;
714+
}
715+
716+
var item = itemRequirements.item;
717+
var requirements = itemRequirements.requirements;
718+
719+
var constructorName = name.asLookupName;
720+
var constructorId = item.getConstructorId(constructorName);
721+
requirements.constructors[constructorName] = constructorId;
722+
}
723+
725724
void record_propertyAccessorElement_variable({
726725
required PropertyAccessorElementImpl2 element,
727726
required String? name,

0 commit comments

Comments
 (0)