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

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

Issue 1120623003: Add a flag to the element model to identify mixin applications. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 7 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 | Annotate | Revision Log
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 engine.resolver; 5 library engine.resolver;
6 6
7 import "dart:math" as math; 7 import "dart:math" as math;
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/src/generated/utilities_collection.dart'; 10 import 'package:analyzer/src/generated/utilities_collection.dart';
(...skipping 2469 matching lines...) Expand 10 before | Expand all | Expand 10 after
2480 } 2480 }
2481 2481
2482 @override 2482 @override
2483 Object visitClassTypeAlias(ClassTypeAlias node) { 2483 Object visitClassTypeAlias(ClassTypeAlias node) {
2484 ElementHolder holder = new ElementHolder(); 2484 ElementHolder holder = new ElementHolder();
2485 _functionTypesToFix = new List<FunctionTypeImpl>(); 2485 _functionTypesToFix = new List<FunctionTypeImpl>();
2486 _visitChildren(holder, node); 2486 _visitChildren(holder, node);
2487 SimpleIdentifier className = node.name; 2487 SimpleIdentifier className = node.name;
2488 ClassElementImpl element = new ClassElementImpl.forNode(className); 2488 ClassElementImpl element = new ClassElementImpl.forNode(className);
2489 element.abstract = node.abstractKeyword != null; 2489 element.abstract = node.abstractKeyword != null;
2490 element.mixinApplication = true;
2490 element.typedef = true; 2491 element.typedef = true;
2491 List<TypeParameterElement> typeParameters = holder.typeParameters; 2492 List<TypeParameterElement> typeParameters = holder.typeParameters;
2492 element.typeParameters = typeParameters; 2493 element.typeParameters = typeParameters;
2493 List<DartType> typeArguments = _createTypeParameterTypes(typeParameters); 2494 List<DartType> typeArguments = _createTypeParameterTypes(typeParameters);
2494 InterfaceTypeImpl interfaceType = new InterfaceTypeImpl.con1(element); 2495 InterfaceTypeImpl interfaceType = new InterfaceTypeImpl.con1(element);
2495 interfaceType.typeArguments = typeArguments; 2496 interfaceType.typeArguments = typeArguments;
2496 element.type = interfaceType; 2497 element.type = interfaceType;
2497 // set default constructor 2498 // set default constructor
2498 element.constructors = _createDefaultConstructors(interfaceType); 2499 element.constructors = _createDefaultConstructors(interfaceType);
2499 for (FunctionTypeImpl functionType in _functionTypesToFix) { 2500 for (FunctionTypeImpl functionType in _functionTypesToFix) {
(...skipping 12911 matching lines...) Expand 10 before | Expand all | Expand 10 after
15411 nonFields.add(node); 15412 nonFields.add(node);
15412 return null; 15413 return null;
15413 } 15414 }
15414 15415
15415 @override 15416 @override
15416 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this); 15417 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this);
15417 15418
15418 @override 15419 @override
15419 Object visitWithClause(WithClause node) => null; 15420 Object visitWithClause(WithClause node) => null;
15420 } 15421 }
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/src/generated/element_handle.dart ('k') | pkg/analyzer/test/generated/all_the_rest_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698