| OLD | NEW |
| 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 |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 import com.google.dart.engine.ast.StringInterpolation; | 41 import com.google.dart.engine.ast.StringInterpolation; |
| 42 import com.google.dart.engine.ast.StringLiteral; | 42 import com.google.dart.engine.ast.StringLiteral; |
| 43 import com.google.dart.engine.ast.SymbolLiteral; | 43 import com.google.dart.engine.ast.SymbolLiteral; |
| 44 import com.google.dart.engine.ast.visitor.UnifyingASTVisitor; | 44 import com.google.dart.engine.ast.visitor.UnifyingASTVisitor; |
| 45 import com.google.dart.engine.element.ClassElement; | 45 import com.google.dart.engine.element.ClassElement; |
| 46 import com.google.dart.engine.element.CompilationUnitElement; | 46 import com.google.dart.engine.element.CompilationUnitElement; |
| 47 import com.google.dart.engine.element.ConstructorElement; | 47 import com.google.dart.engine.element.ConstructorElement; |
| 48 import com.google.dart.engine.element.Element; | 48 import com.google.dart.engine.element.Element; |
| 49 import com.google.dart.engine.element.ExecutableElement; | 49 import com.google.dart.engine.element.ExecutableElement; |
| 50 import com.google.dart.engine.element.FunctionElement; | 50 import com.google.dart.engine.element.FunctionElement; |
| 51 import com.google.dart.engine.element.FunctionTypeAliasElement; |
| 51 import com.google.dart.engine.element.LibraryElement; | 52 import com.google.dart.engine.element.LibraryElement; |
| 52 import com.google.dart.engine.element.PrefixElement; | 53 import com.google.dart.engine.element.PrefixElement; |
| 53 import com.google.dart.engine.element.PropertyAccessorElement; | 54 import com.google.dart.engine.element.PropertyAccessorElement; |
| 54 import com.google.dart.engine.error.CompileTimeErrorCode; | 55 import com.google.dart.engine.error.CompileTimeErrorCode; |
| 55 import com.google.dart.engine.error.ErrorCode; | 56 import com.google.dart.engine.error.ErrorCode; |
| 56 import com.google.dart.engine.internal.element.VariableElementImpl; | 57 import com.google.dart.engine.internal.element.VariableElementImpl; |
| 57 import com.google.dart.engine.scanner.TokenType; | 58 import com.google.dart.engine.scanner.TokenType; |
| 58 | 59 |
| 59 /** | 60 /** |
| 60 * Instances of the class {@code ConstantVisitor} evaluate constant expressions
to produce their | 61 * Instances of the class {@code ConstantVisitor} evaluate constant expressions
to produce their |
| (...skipping 333 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 394 if (element instanceof VariableElementImpl) { | 395 if (element instanceof VariableElementImpl) { |
| 395 VariableElementImpl variableElementImpl = (VariableElementImpl) element; | 396 VariableElementImpl variableElementImpl = (VariableElementImpl) element; |
| 396 EvaluationResultImpl value = variableElementImpl.getEvaluationResult(); | 397 EvaluationResultImpl value = variableElementImpl.getEvaluationResult(); |
| 397 if (variableElementImpl.isConst() && value != null) { | 398 if (variableElementImpl.isConst() && value != null) { |
| 398 return value; | 399 return value; |
| 399 } | 400 } |
| 400 } else if (element instanceof ExecutableElement) { | 401 } else if (element instanceof ExecutableElement) { |
| 401 if (((ExecutableElement) element).isStatic()) { | 402 if (((ExecutableElement) element).isStatic()) { |
| 402 return new ValidResult(element); | 403 return new ValidResult(element); |
| 403 } | 404 } |
| 404 } else if (element instanceof ClassElement) { | 405 } else if (element instanceof ClassElement || element instanceof FunctionTyp
eAliasElement) { |
| 405 return ValidResult.RESULT_OBJECT; | 406 return ValidResult.RESULT_OBJECT; |
| 406 } | 407 } |
| 407 // TODO(brianwilkerson) Figure out which error to report. | 408 // TODO(brianwilkerson) Figure out which error to report. |
| 408 return error(node, null); | 409 return error(node, null); |
| 409 } | 410 } |
| 410 | 411 |
| 411 /** | 412 /** |
| 412 * Return the union of the errors encoded in the given results. | 413 * Return the union of the errors encoded in the given results. |
| 413 * | 414 * |
| 414 * @param leftResult the first set of errors, or {@code null} if there was no
previous collection | 415 * @param leftResult the first set of errors, or {@code null} if there was no
previous collection |
| 415 * of errors | 416 * of errors |
| 416 * @param rightResult the errors to be added to the collection, or a valid res
ult if there are no | 417 * @param rightResult the errors to be added to the collection, or a valid res
ult if there are no |
| 417 * errors to be added | 418 * errors to be added |
| 418 * @return the union of the errors encoded in the given results | 419 * @return the union of the errors encoded in the given results |
| 419 */ | 420 */ |
| 420 private ErrorResult union(ErrorResult leftResult, EvaluationResultImpl rightRe
sult) { | 421 private ErrorResult union(ErrorResult leftResult, EvaluationResultImpl rightRe
sult) { |
| 421 if (rightResult instanceof ErrorResult) { | 422 if (rightResult instanceof ErrorResult) { |
| 422 if (leftResult != null) { | 423 if (leftResult != null) { |
| 423 return new ErrorResult(leftResult, (ErrorResult) rightResult); | 424 return new ErrorResult(leftResult, (ErrorResult) rightResult); |
| 424 } else { | 425 } else { |
| 425 return (ErrorResult) rightResult; | 426 return (ErrorResult) rightResult; |
| 426 } | 427 } |
| 427 } | 428 } |
| 428 return leftResult; | 429 return leftResult; |
| 429 } | 430 } |
| 430 } | 431 } |
| OLD | NEW |