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

Unified Diff: pkg/analyzer/lib/src/generated/element_resolver.dart

Issue 1916223004: Stop concatenating prefixes and identifiers when performing lookup (issue 26069) (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Clean up Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analyzer/lib/src/dart/resolver/scope.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/generated/element_resolver.dart
diff --git a/pkg/analyzer/lib/src/generated/element_resolver.dart b/pkg/analyzer/lib/src/generated/element_resolver.dart
index b37ebea8d1b858d2bb3ece905ede30e2962c58b6..833e55e0ff2f6a897408eee9d0dc50c0b65387a1 100644
--- a/pkg/analyzer/lib/src/generated/element_resolver.dart
+++ b/pkg/analyzer/lib/src/generated/element_resolver.dart
@@ -12,7 +12,12 @@ import 'package:analyzer/dart/ast/visitor.dart';
import 'package:analyzer/dart/element/element.dart';
import 'package:analyzer/dart/element/type.dart';
import 'package:analyzer/src/dart/ast/ast.dart'
- show ChildEntities, IdentifierImpl;
+ show
+ ChildEntities,
+ IdentifierImpl,
+ PrefixedIdentifierImpl,
+ SimpleIdentifierImpl;
+import 'package:analyzer/src/dart/ast/token.dart';
import 'package:analyzer/src/dart/element/element.dart';
import 'package:analyzer/src/dart/element/type.dart';
import 'package:analyzer/src/generated/engine.dart';
@@ -879,8 +884,11 @@ class ElementResolver extends SimpleAstVisitor<Object> {
if (prefixElement is PrefixElement) {
Element element = _resolver.nameScope.lookup(node, _definingLibrary);
if (element == null && identifier.inSetterContext()) {
- element = _resolver.nameScope.lookup(
- new SyntheticIdentifier("${node.name}=", node), _definingLibrary);
+ Identifier setterName = new PrefixedIdentifierImpl.temp(
+ node.prefix,
+ new SimpleIdentifierImpl(new StringToken(TokenType.STRING,
+ "${node.identifier.name}=", node.identifier.offset - 1)));
+ element = _resolver.nameScope.lookup(setterName, _definingLibrary);
}
if (element == null) {
if (identifier.inSetterContext()) {
@@ -1379,8 +1387,10 @@ class ElementResolver extends SimpleAstVisitor<Object> {
for (ImportElement importElement in _definingLibrary.imports) {
PrefixElement prefixElement = importElement.prefix;
if (prefixElement != null) {
- Identifier prefixedIdentifier = new SyntheticIdentifier(
- "${prefixElement.name}.${identifier.name}", identifier);
+ Identifier prefixedIdentifier = new PrefixedIdentifierImpl.temp(
+ new SimpleIdentifierImpl(new StringToken(TokenType.STRING,
+ prefixElement.name, prefixElement.nameOffset)),
+ identifier);
Element importedElement =
nameScope.lookup(prefixedIdentifier, _definingLibrary);
if (importedElement != null) {
@@ -2183,8 +2193,8 @@ class ElementResolver extends SimpleAstVisitor<Object> {
// prefixed identifier for an imported top-level function or top-level
// getter that returns a function.
//
- String name = "${target.name}.$methodName";
- Identifier functionName = new SyntheticIdentifier(name, methodName);
+ Identifier functionName =
+ new PrefixedIdentifierImpl.temp(target, methodName);
Element element =
_resolver.nameScope.lookup(functionName, _definingLibrary);
if (element != null) {
« no previous file with comments | « pkg/analyzer/lib/src/dart/resolver/scope.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698