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

Side by Side Diff: dart/editor/tools/plugins/com.google.dart.engine/src/com/google/dart/engine/internal/resolver/TypeProviderImpl.java

Issue 59073003: Version 0.8.10.4 (Closed) Base URL: http://dart.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 1 month 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 /* 1 /*
2 * Copyright (c) 2013, the Dart project authors. 2 * Copyright (c) 2013, the Dart project authors.
3 * 3 *
4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except 4 * Licensed under the Eclipse Public License v1.0 (the "License"); you may not u se this file except
5 * in compliance with the License. You may obtain a copy of the License at 5 * in compliance with the License. You may obtain a copy of the License at
6 * 6 *
7 * http://www.eclipse.org/legal/epl-v10.html 7 * http://www.eclipse.org/legal/epl-v10.html
8 * 8 *
9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License 9 * Unless required by applicable law or agreed to in writing, software distribut ed under the License
10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express 10 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY K IND, either express
11 * or implied. See the License for the specific language governing permissions a nd limitations under 11 * or implied. See the License for the specific language governing permissions a nd limitations under
12 * the License. 12 * the License.
13 */ 13 */
14 package com.google.dart.engine.internal.resolver; 14 package com.google.dart.engine.internal.resolver;
15 15
16 import com.google.dart.engine.AnalysisEngine; 16 import com.google.dart.engine.AnalysisEngine;
17 import com.google.dart.engine.element.ClassElement; 17 import com.google.dart.engine.element.ClassElement;
18 import com.google.dart.engine.element.Element; 18 import com.google.dart.engine.element.Element;
19 import com.google.dart.engine.element.LibraryElement; 19 import com.google.dart.engine.element.LibraryElement;
20 import com.google.dart.engine.internal.scope.Namespace; 20 import com.google.dart.engine.internal.scope.Namespace;
21 import com.google.dart.engine.internal.scope.NamespaceBuilder; 21 import com.google.dart.engine.internal.scope.NamespaceBuilder;
22 import com.google.dart.engine.internal.type.BottomTypeImpl; 22 import com.google.dart.engine.internal.type.BottomTypeImpl;
23 import com.google.dart.engine.internal.type.DynamicTypeImpl; 23 import com.google.dart.engine.internal.type.DynamicTypeImpl;
24 import com.google.dart.engine.type.InterfaceType; 24 import com.google.dart.engine.type.InterfaceType;
25 import com.google.dart.engine.type.Type; 25 import com.google.dart.engine.type.Type;
26 26
27 /** 27 /**
28 * Instances of the class {@code TypeProviderImpl} provide access to types defin ed by the language 28 * Instances of the class {@code TypeProviderImpl} provide access to types defin ed by the language
29 * by looking for those types in the element model for the core library. 29 * by looking for those types in the element model for the core library.
30 * 30 *
31 * @coverage dart.engine.resolver 31 * @coverage dart.engine.resolver
32 */ 32 */
33 public class TypeProviderImpl implements TypeProvider { 33 public class TypeProviderImpl implements TypeProvider {
34 /** 34 /**
35 * The type representing the built-in type 'bool'. 35 * The type representing the built-in type 'bool'.
36 */ 36 */
37 private InterfaceType boolType; 37 private InterfaceType boolType;
38 38
39 /** 39 /**
40 * The type representing the type 'bottom'. 40 * The type representing the type 'bottom'.
41 */ 41 */
42 private Type bottomType; 42 private Type bottomType;
43 43
44 /** 44 /**
45 * The type representing the built-in type 'double'. 45 * The type representing the built-in type 'double'.
46 */ 46 */
47 private InterfaceType doubleType; 47 private InterfaceType doubleType;
48 48
49 /** 49 /**
50 * The type representing the built-in type 'Deprecated'.
51 */
52 private InterfaceType deprecatedType;
53
54 /**
50 * The type representing the built-in type 'dynamic'. 55 * The type representing the built-in type 'dynamic'.
51 */ 56 */
52 private Type dynamicType; 57 private Type dynamicType;
53 58
54 /** 59 /**
55 * The type representing the built-in type 'Function'. 60 * The type representing the built-in type 'Function'.
56 */ 61 */
57 private InterfaceType functionType; 62 private InterfaceType functionType;
58 63
59 /** 64 /**
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 */ 106 */
102 private InterfaceType symbolType; 107 private InterfaceType symbolType;
103 108
104 /** 109 /**
105 * The type representing the built-in type 'Type'. 110 * The type representing the built-in type 'Type'.
106 */ 111 */
107 private InterfaceType typeType; 112 private InterfaceType typeType;
108 113
109 /** 114 /**
110 * Initialize a newly created type provider to provide the types defined in th e given library. 115 * Initialize a newly created type provider to provide the types defined in th e given library.
111 * 116 *
112 * @param coreLibrary the element representing the core library (dart:core). 117 * @param coreLibrary the element representing the core library (dart:core).
113 */ 118 */
114 public TypeProviderImpl(LibraryElement coreLibrary) { 119 public TypeProviderImpl(LibraryElement coreLibrary) {
115 initializeFrom(coreLibrary); 120 initializeFrom(coreLibrary);
116 } 121 }
117 122
118 @Override 123 @Override
119 public InterfaceType getBoolType() { 124 public InterfaceType getBoolType() {
120 return boolType; 125 return boolType;
121 } 126 }
122 127
123 @Override 128 @Override
124 public Type getBottomType() { 129 public Type getBottomType() {
125 return bottomType; 130 return bottomType;
126 } 131 }
127 132
128 @Override 133 @Override
134 public InterfaceType getDeprecatedType() {
135 return deprecatedType;
136 }
137
138 @Override
129 public InterfaceType getDoubleType() { 139 public InterfaceType getDoubleType() {
130 return doubleType; 140 return doubleType;
131 } 141 }
132 142
133 @Override 143 @Override
134 public Type getDynamicType() { 144 public Type getDynamicType() {
135 return dynamicType; 145 return dynamicType;
136 } 146 }
137 147
138 @Override 148 @Override
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
186 } 196 }
187 197
188 @Override 198 @Override
189 public InterfaceType getTypeType() { 199 public InterfaceType getTypeType() {
190 return typeType; 200 return typeType;
191 } 201 }
192 202
193 /** 203 /**
194 * Return the type with the given name from the given namespace, or {@code nul l} if there is no 204 * Return the type with the given name from the given namespace, or {@code nul l} if there is no
195 * class with the given name. 205 * class with the given name.
196 * 206 *
197 * @param namespace the namespace in which to search for the given name 207 * @param namespace the namespace in which to search for the given name
198 * @param typeName the name of the type being searched for 208 * @param typeName the name of the type being searched for
199 * @return the type that was found 209 * @return the type that was found
200 */ 210 */
201 private InterfaceType getType(Namespace namespace, String typeName) { 211 private InterfaceType getType(Namespace namespace, String typeName) {
202 Element element = namespace.get(typeName); 212 Element element = namespace.get(typeName);
203 if (element == null) { 213 if (element == null) {
204 AnalysisEngine.getInstance().getLogger().logInformation("No definition of type " + typeName); 214 AnalysisEngine.getInstance().getLogger().logInformation("No definition of type " + typeName);
205 return null; 215 return null;
206 } 216 }
207 return ((ClassElement) element).getType(); 217 return ((ClassElement) element).getType();
208 } 218 }
209 219
210 /** 220 /**
211 * Initialize the types provided by this type provider from the given library. 221 * Initialize the types provided by this type provider from the given library.
212 * 222 *
213 * @param library the library containing the definitions of the core types 223 * @param library the library containing the definitions of the core types
214 */ 224 */
215 private void initializeFrom(LibraryElement library) { 225 private void initializeFrom(LibraryElement library) {
216 Namespace namespace = new NamespaceBuilder().createPublicNamespace(library); 226 Namespace namespace = new NamespaceBuilder().createPublicNamespace(library);
217 boolType = getType(namespace, "bool"); 227 boolType = getType(namespace, "bool");
218 bottomType = BottomTypeImpl.getInstance(); 228 bottomType = BottomTypeImpl.getInstance();
229 deprecatedType = getType(namespace, "Deprecated");
219 doubleType = getType(namespace, "double"); 230 doubleType = getType(namespace, "double");
220 dynamicType = DynamicTypeImpl.getInstance(); 231 dynamicType = DynamicTypeImpl.getInstance();
221 functionType = getType(namespace, "Function"); 232 functionType = getType(namespace, "Function");
222 intType = getType(namespace, "int"); 233 intType = getType(namespace, "int");
223 listType = getType(namespace, "List"); 234 listType = getType(namespace, "List");
224 mapType = getType(namespace, "Map"); 235 mapType = getType(namespace, "Map");
225 nullType = getType(namespace, "Null"); 236 nullType = getType(namespace, "Null");
226 numType = getType(namespace, "num"); 237 numType = getType(namespace, "num");
227 objectType = getType(namespace, "Object"); 238 objectType = getType(namespace, "Object");
228 stackTraceType = getType(namespace, "StackTrace"); 239 stackTraceType = getType(namespace, "StackTrace");
229 stringType = getType(namespace, "String"); 240 stringType = getType(namespace, "String");
230 symbolType = getType(namespace, "Symbol"); 241 symbolType = getType(namespace, "Symbol");
231 typeType = getType(namespace, "Type"); 242 typeType = getType(namespace, "Type");
232 } 243 }
233 } 244 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698