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

Side by Side Diff: pkg/analyzer/lib/src/generated/resolver.dart

Issue 1513143004: fix #25171, clear "hasBeenInferred" flag when re-running resolution (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years 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
« no previous file with comments | « no previous file | pkg/analyzer/test/src/task/dart_test.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 library analyzer.src.generated.resolver; 5 library analyzer.src.generated.resolver;
6 6
7 import 'dart:collection'; 7 import 'dart:collection';
8 8
9 import 'package:analyzer/src/generated/ast.dart'; 9 import 'package:analyzer/src/generated/ast.dart';
10 import 'package:analyzer/src/generated/constant.dart'; 10 import 'package:analyzer/src/generated/constant.dart';
(...skipping 11727 matching lines...) Expand 10 before | Expand all | Expand 10 after
11738 } 11738 }
11739 return null; 11739 return null;
11740 } 11740 }
11741 11741
11742 @override 11742 @override
11743 Object visitClassDeclaration(ClassDeclaration node) { 11743 Object visitClassDeclaration(ClassDeclaration node) {
11744 _hasReferenceToSuper = false; 11744 _hasReferenceToSuper = false;
11745 super.visitClassDeclaration(node); 11745 super.visitClassDeclaration(node);
11746 ClassElementImpl classElement = _getClassElement(node.name); 11746 ClassElementImpl classElement = _getClassElement(node.name);
11747 if (classElement != null) { 11747 if (classElement != null) {
11748 // Clear this flag, as we just invalidated any inferred member types.
Leaf 2015/12/11 00:09:25 We've also invalidated anything that extends/imple
Jennifer Messerly 2015/12/11 00:15:51 The invariant here is we'll clear the flag at basi
11749 classElement.hasBeenInferred = false;
11748 classElement.hasReferenceToSuper = _hasReferenceToSuper; 11750 classElement.hasReferenceToSuper = _hasReferenceToSuper;
11749 } 11751 }
11750 return null; 11752 return null;
11751 } 11753 }
11752 11754
11753 @override 11755 @override
11754 void visitClassDeclarationInScope(ClassDeclaration node) { 11756 void visitClassDeclarationInScope(ClassDeclaration node) {
11755 super.visitClassDeclarationInScope(node); 11757 super.visitClassDeclarationInScope(node);
11756 ExtendsClause extendsClause = node.extendsClause; 11758 ExtendsClause extendsClause = node.extendsClause;
11757 WithClause withClause = node.withClause; 11759 WithClause withClause = node.withClause;
(...skipping 1560 matching lines...) Expand 10 before | Expand all | Expand 10 after
13318 nonFields.add(node); 13320 nonFields.add(node);
13319 return null; 13321 return null;
13320 } 13322 }
13321 13323
13322 @override 13324 @override
13323 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this); 13325 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this);
13324 13326
13325 @override 13327 @override
13326 Object visitWithClause(WithClause node) => null; 13328 Object visitWithClause(WithClause node) => null;
13327 } 13329 }
OLDNEW
« no previous file with comments | « no previous file | pkg/analyzer/test/src/task/dart_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698