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

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

Issue 1158793004: Add isExternal accessor to element model (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 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) 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:collection'; 7 import 'dart:collection';
8 import "dart:math" as math; 8 import "dart:math" as math;
9 9
10 import 'package:analyzer/src/generated/utilities_collection.dart'; 10 import 'package:analyzer/src/generated/utilities_collection.dart';
(...skipping 2514 matching lines...) Expand 10 before | Expand all | Expand 10 after
2525 _inFunction = true; 2525 _inFunction = true;
2526 try { 2526 try {
2527 _visitChildren(holder, node); 2527 _visitChildren(holder, node);
2528 } finally { 2528 } finally {
2529 _inFunction = wasInFunction; 2529 _inFunction = wasInFunction;
2530 } 2530 }
2531 FunctionBody body = node.body; 2531 FunctionBody body = node.body;
2532 SimpleIdentifier constructorName = node.name; 2532 SimpleIdentifier constructorName = node.name;
2533 ConstructorElementImpl element = 2533 ConstructorElementImpl element =
2534 new ConstructorElementImpl.forNode(constructorName); 2534 new ConstructorElementImpl.forNode(constructorName);
2535 if (node.externalKeyword != null) {
2536 element.external = true;
2537 }
2535 if (node.factoryKeyword != null) { 2538 if (node.factoryKeyword != null) {
2536 element.factory = true; 2539 element.factory = true;
2537 } 2540 }
2538 element.functions = holder.functions; 2541 element.functions = holder.functions;
2539 element.labels = holder.labels; 2542 element.labels = holder.labels;
2540 element.localVariables = holder.localVariables; 2543 element.localVariables = holder.localVariables;
2541 element.parameters = holder.parameters; 2544 element.parameters = holder.parameters;
2542 element.const2 = node.constKeyword != null; 2545 element.const2 = node.constKeyword != null;
2543 if (body.isAsynchronous) { 2546 if (body.isAsynchronous) {
2544 element.asynchronous = true; 2547 element.asynchronous = true;
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after
2684 _visitChildren(holder, node); 2687 _visitChildren(holder, node);
2685 } finally { 2688 } finally {
2686 _inFunction = wasInFunction; 2689 _inFunction = wasInFunction;
2687 } 2690 }
2688 FunctionBody body = expression.body; 2691 FunctionBody body = expression.body;
2689 sc.Token property = node.propertyKeyword; 2692 sc.Token property = node.propertyKeyword;
2690 if (property == null || _inFunction) { 2693 if (property == null || _inFunction) {
2691 SimpleIdentifier functionName = node.name; 2694 SimpleIdentifier functionName = node.name;
2692 FunctionElementImpl element = 2695 FunctionElementImpl element =
2693 new FunctionElementImpl.forNode(functionName); 2696 new FunctionElementImpl.forNode(functionName);
2697 if (node.externalKeyword != null) {
2698 element.external = true;
2699 }
2694 element.functions = holder.functions; 2700 element.functions = holder.functions;
2695 element.labels = holder.labels; 2701 element.labels = holder.labels;
2696 element.localVariables = holder.localVariables; 2702 element.localVariables = holder.localVariables;
2697 element.parameters = holder.parameters; 2703 element.parameters = holder.parameters;
2698 if (body.isAsynchronous) { 2704 if (body.isAsynchronous) {
2699 element.asynchronous = true; 2705 element.asynchronous = true;
2700 } 2706 }
2701 if (body.isGenerator) { 2707 if (body.isGenerator) {
2702 element.generator = true; 2708 element.generator = true;
2703 } 2709 }
(...skipping 19 matching lines...) Expand all
2723 .getTopLevelVariable(propertyName) as TopLevelVariableElementImpl; 2729 .getTopLevelVariable(propertyName) as TopLevelVariableElementImpl;
2724 if (variable == null) { 2730 if (variable == null) {
2725 variable = new TopLevelVariableElementImpl(node.name.name, -1); 2731 variable = new TopLevelVariableElementImpl(node.name.name, -1);
2726 variable.final2 = true; 2732 variable.final2 = true;
2727 variable.synthetic = true; 2733 variable.synthetic = true;
2728 _currentHolder.addTopLevelVariable(variable); 2734 _currentHolder.addTopLevelVariable(variable);
2729 } 2735 }
2730 if (node.isGetter) { 2736 if (node.isGetter) {
2731 PropertyAccessorElementImpl getter = 2737 PropertyAccessorElementImpl getter =
2732 new PropertyAccessorElementImpl.forNode(propertyNameNode); 2738 new PropertyAccessorElementImpl.forNode(propertyNameNode);
2739 if (node.externalKeyword != null) {
2740 getter.external = true;
2741 }
2733 getter.functions = holder.functions; 2742 getter.functions = holder.functions;
2734 getter.labels = holder.labels; 2743 getter.labels = holder.labels;
2735 getter.localVariables = holder.localVariables; 2744 getter.localVariables = holder.localVariables;
2736 if (body.isAsynchronous) { 2745 if (body.isAsynchronous) {
2737 getter.asynchronous = true; 2746 getter.asynchronous = true;
2738 } 2747 }
2739 if (body.isGenerator) { 2748 if (body.isGenerator) {
2740 getter.generator = true; 2749 getter.generator = true;
2741 } 2750 }
2742 getter.variable = variable; 2751 getter.variable = variable;
2743 getter.getter = true; 2752 getter.getter = true;
2744 getter.static = true; 2753 getter.static = true;
2745 variable.getter = getter; 2754 variable.getter = getter;
2746 _currentHolder.addAccessor(getter); 2755 _currentHolder.addAccessor(getter);
2747 expression.element = getter; 2756 expression.element = getter;
2748 propertyNameNode.staticElement = getter; 2757 propertyNameNode.staticElement = getter;
2749 } else { 2758 } else {
2750 PropertyAccessorElementImpl setter = 2759 PropertyAccessorElementImpl setter =
2751 new PropertyAccessorElementImpl.forNode(propertyNameNode); 2760 new PropertyAccessorElementImpl.forNode(propertyNameNode);
2761 if (node.externalKeyword != null) {
2762 setter.external = true;
2763 }
2752 setter.functions = holder.functions; 2764 setter.functions = holder.functions;
2753 setter.labels = holder.labels; 2765 setter.labels = holder.labels;
2754 setter.localVariables = holder.localVariables; 2766 setter.localVariables = holder.localVariables;
2755 setter.parameters = holder.parameters; 2767 setter.parameters = holder.parameters;
2756 if (body.isAsynchronous) { 2768 if (body.isAsynchronous) {
2757 setter.asynchronous = true; 2769 setter.asynchronous = true;
2758 } 2770 }
2759 if (body.isGenerator) { 2771 if (body.isGenerator) {
2760 setter.generator = true; 2772 setter.generator = true;
2761 } 2773 }
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
2893 if (property == null) { 2905 if (property == null) {
2894 SimpleIdentifier methodName = node.name; 2906 SimpleIdentifier methodName = node.name;
2895 String nameOfMethod = methodName.name; 2907 String nameOfMethod = methodName.name;
2896 if (nameOfMethod == sc.TokenType.MINUS.lexeme && 2908 if (nameOfMethod == sc.TokenType.MINUS.lexeme &&
2897 node.parameters.parameters.length == 0) { 2909 node.parameters.parameters.length == 0) {
2898 nameOfMethod = "unary-"; 2910 nameOfMethod = "unary-";
2899 } 2911 }
2900 MethodElementImpl element = 2912 MethodElementImpl element =
2901 new MethodElementImpl(nameOfMethod, methodName.offset); 2913 new MethodElementImpl(nameOfMethod, methodName.offset);
2902 element.abstract = node.isAbstract; 2914 element.abstract = node.isAbstract;
2915 if (node.externalKeyword != null) {
2916 element.external = true;
2917 }
2903 element.functions = holder.functions; 2918 element.functions = holder.functions;
2904 element.labels = holder.labels; 2919 element.labels = holder.labels;
2905 element.localVariables = holder.localVariables; 2920 element.localVariables = holder.localVariables;
2906 element.parameters = holder.parameters; 2921 element.parameters = holder.parameters;
2907 element.static = isStatic; 2922 element.static = isStatic;
2908 if (body.isAsynchronous) { 2923 if (body.isAsynchronous) {
2909 element.asynchronous = true; 2924 element.asynchronous = true;
2910 } 2925 }
2911 if (body.isGenerator) { 2926 if (body.isGenerator) {
2912 element.generator = true; 2927 element.generator = true;
2913 } 2928 }
2914 _currentHolder.addMethod(element); 2929 _currentHolder.addMethod(element);
2915 methodName.staticElement = element; 2930 methodName.staticElement = element;
2916 } else { 2931 } else {
2917 SimpleIdentifier propertyNameNode = node.name; 2932 SimpleIdentifier propertyNameNode = node.name;
2918 String propertyName = propertyNameNode.name; 2933 String propertyName = propertyNameNode.name;
2919 FieldElementImpl field = 2934 FieldElementImpl field =
2920 _currentHolder.getField(propertyName) as FieldElementImpl; 2935 _currentHolder.getField(propertyName) as FieldElementImpl;
2921 if (field == null) { 2936 if (field == null) {
2922 field = new FieldElementImpl(node.name.name, -1); 2937 field = new FieldElementImpl(node.name.name, -1);
2923 field.final2 = true; 2938 field.final2 = true;
2924 field.static = isStatic; 2939 field.static = isStatic;
2925 field.synthetic = true; 2940 field.synthetic = true;
2926 _currentHolder.addField(field); 2941 _currentHolder.addField(field);
2927 } 2942 }
2928 if (node.isGetter) { 2943 if (node.isGetter) {
2929 PropertyAccessorElementImpl getter = 2944 PropertyAccessorElementImpl getter =
2930 new PropertyAccessorElementImpl.forNode(propertyNameNode); 2945 new PropertyAccessorElementImpl.forNode(propertyNameNode);
2946 if (node.externalKeyword != null) {
2947 getter.external = true;
2948 }
2931 getter.functions = holder.functions; 2949 getter.functions = holder.functions;
2932 getter.labels = holder.labels; 2950 getter.labels = holder.labels;
2933 getter.localVariables = holder.localVariables; 2951 getter.localVariables = holder.localVariables;
2934 if (body.isAsynchronous) { 2952 if (body.isAsynchronous) {
2935 getter.asynchronous = true; 2953 getter.asynchronous = true;
2936 } 2954 }
2937 if (body.isGenerator) { 2955 if (body.isGenerator) {
2938 getter.generator = true; 2956 getter.generator = true;
2939 } 2957 }
2940 getter.variable = field; 2958 getter.variable = field;
2941 getter.abstract = node.isAbstract; 2959 getter.abstract = node.isAbstract;
2942 getter.getter = true; 2960 getter.getter = true;
2943 getter.static = isStatic; 2961 getter.static = isStatic;
2944 field.getter = getter; 2962 field.getter = getter;
2945 _currentHolder.addAccessor(getter); 2963 _currentHolder.addAccessor(getter);
2946 propertyNameNode.staticElement = getter; 2964 propertyNameNode.staticElement = getter;
2947 } else { 2965 } else {
2948 PropertyAccessorElementImpl setter = 2966 PropertyAccessorElementImpl setter =
2949 new PropertyAccessorElementImpl.forNode(propertyNameNode); 2967 new PropertyAccessorElementImpl.forNode(propertyNameNode);
2968 if (node.externalKeyword != null) {
2969 setter.external = true;
2970 }
2950 setter.functions = holder.functions; 2971 setter.functions = holder.functions;
2951 setter.labels = holder.labels; 2972 setter.labels = holder.labels;
2952 setter.localVariables = holder.localVariables; 2973 setter.localVariables = holder.localVariables;
2953 setter.parameters = holder.parameters; 2974 setter.parameters = holder.parameters;
2954 if (body.isAsynchronous) { 2975 if (body.isAsynchronous) {
2955 setter.asynchronous = true; 2976 setter.asynchronous = true;
2956 } 2977 }
2957 if (body.isGenerator) { 2978 if (body.isGenerator) {
2958 setter.generator = true; 2979 setter.generator = true;
2959 } 2980 }
(...skipping 12507 matching lines...) Expand 10 before | Expand all | Expand 10 after
15467 nonFields.add(node); 15488 nonFields.add(node);
15468 return null; 15489 return null;
15469 } 15490 }
15470 15491
15471 @override 15492 @override
15472 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this); 15493 Object visitNode(AstNode node) => node.accept(TypeResolverVisitor_this);
15473 15494
15474 @override 15495 @override
15475 Object visitWithClause(WithClause node) => null; 15496 Object visitWithClause(WithClause node) => null;
15476 } 15497 }
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