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

Unified Diff: pkg/compiler/lib/src/constants/constructors.dart

Issue 1279613003: Rename constructors.dart to constant_constructors.dart (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/constants/constructors.dart
diff --git a/pkg/compiler/lib/src/constants/constructors.dart b/pkg/compiler/lib/src/constants/constructors.dart
deleted file mode 100644
index 1e588a85afd7f42c06681cf6158a37a28fd7d9a2..0000000000000000000000000000000000000000
--- a/pkg/compiler/lib/src/constants/constructors.dart
+++ /dev/null
@@ -1,377 +0,0 @@
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-library dart2js.constants.constructors;
-
-import '../dart2jslib.dart';
-import '../dart_types.dart';
-import '../elements/elements.dart';
-import '../resolution/resolution.dart';
-import '../resolution/operators.dart';
-import '../resolution/semantic_visitor.dart';
-import '../resolution/send_structure.dart';
-import '../tree/tree.dart';
-import '../universe/universe.dart' show CallStructure;
-import 'expressions.dart';
-
-ConstantConstructor computeConstantConstructor(ResolvedAst resolvedAst) {
- ConstantConstructorComputer visitor =
- new ConstantConstructorComputer(resolvedAst.elements);
- return resolvedAst.node.accept(visitor);
-}
-
-class ConstantConstructorComputer extends SemanticVisitor
- with SemanticDeclarationResolvedMixin,
- DeclarationResolverMixin,
- GetBulkMixin,
- SetBulkMixin,
- ErrorBulkMixin,
- InvokeBulkMixin,
- IndexSetBulkMixin,
- CompoundBulkMixin,
- UnaryBulkMixin,
- BaseBulkMixin,
- BinaryBulkMixin,
- PrefixBulkMixin,
- PostfixBulkMixin,
- NewBulkMixin,
- InitializerBulkMixin,
- FunctionBulkMixin,
- VariableBulkMixin
- implements SemanticDeclarationVisitor, SemanticSendVisitor {
- final Map<FieldElement, ConstantExpression> fieldMap =
- <FieldElement, ConstantExpression>{};
- final Map<dynamic/*int|String*/, ConstantExpression> defaultValues =
- <dynamic/*int|String*/, ConstantExpression>{};
-
- ConstantConstructorComputer(TreeElements elements)
- : super(elements);
-
- SemanticDeclarationVisitor get declVisitor => this;
-
- SemanticSendVisitor get sendVisitor => this;
-
- ClassElement get currentClass => currentConstructor.enclosingClass;
-
- ConstructorElement get currentConstructor => elements.analyzedElement;
-
- apply(Node node, [_]) => node.accept(this);
-
- visitNode(Node node) {
- internalError(node, 'Unhandled node $node: ${node.toDebugString()}');
- }
-
- @override
- bulkHandleNode(Node node, String template, _) {
- internalError(node, template.replaceFirst('#' , '$node'));
- }
-
- internalError(Node node, String message) {
- throw new UnsupportedError(message);
- }
-
- ConstantConstructor visitGenerativeConstructorDeclaration(
- FunctionExpression node,
- ConstructorElement constructor,
- NodeList parameters,
- NodeList initializers,
- Node body,
- _) {
- applyParameters(parameters, _);
- ConstructedConstantExpression constructorInvocation =
- applyInitializers(node, _);
- return new GenerativeConstantConstructor(
- currentClass.thisType, defaultValues, fieldMap, constructorInvocation);
- }
-
- ConstantConstructor visitRedirectingGenerativeConstructorDeclaration(
- FunctionExpression node,
- ConstructorElement constructor,
- NodeList parameters,
- NodeList initializers,
- _) {
- applyParameters(parameters, _);
- ConstructedConstantExpression constructorInvocation =
- applyInitializers(node, _);
- return new RedirectingGenerativeConstantConstructor(
- defaultValues, constructorInvocation);
- }
-
- ConstantConstructor visitRedirectingFactoryConstructorDeclaration(
- FunctionExpression node,
- ConstructorElement constructor,
- NodeList parameters,
- InterfaceType redirectionType,
- ConstructorElement redirectionTarget,
- _) {
- List<String> argumentNames = [];
- List<ConstantExpression> arguments = [];
- int index = 0;
- for (ParameterElement parameter in constructor.parameters) {
- if (parameter.isNamed) {
- String name = parameter.name;
- argumentNames.add(name);
- arguments.add(new NamedArgumentReference(name));
- } else {
- arguments.add(new PositionalArgumentReference(index));
- }
- index++;
- }
- CallStructure callStructure = new CallStructure(index, argumentNames);
-
- return new RedirectingFactoryConstantConstructor(
- new ConstructedConstantExpression(
- redirectionType,
- redirectionTarget,
- callStructure,
- arguments));
- }
-
- @override
- visitFactoryConstructorDeclaration(
- FunctionExpression node,
- ConstructorElement constructor,
- NodeList parameters,
- Node body, _) {
- // TODO(johnniwinther): Handle constant constructors with errors.
- internalError(node, "Factory constructor cannot be constant: $node.");
- }
-
- applyParameters(NodeList parameters, _) {
- computeParameterStructures(parameters).forEach((s) => s.dispatch(this, _));
- }
-
- visitParameterDeclaration(
- VariableDefinitions node,
- Node definition,
- ParameterElement parameter,
- int index,
- _) {
- // Do nothing.
- }
-
- visitOptionalParameterDeclaration(
- VariableDefinitions node,
- Node definition,
- ParameterElement parameter,
- ConstantExpression defaultValue,
- int index,
- _) {
- assert(invariant(node, defaultValue != null));
- defaultValues[index] = defaultValue;
- }
-
- visitNamedParameterDeclaration(
- VariableDefinitions node,
- Node definition,
- ParameterElement parameter,
- ConstantExpression defaultValue,
- _) {
- assert(invariant(node, defaultValue != null));
- String name = parameter.name;
- defaultValues[name] = defaultValue;
- }
-
- visitInitializingFormalDeclaration(
- VariableDefinitions node,
- Node definition,
- InitializingFormalElement parameter,
- int index,
- _) {
- fieldMap[parameter.fieldElement] = new PositionalArgumentReference(index);
- }
-
- visitOptionalInitializingFormalDeclaration(
- VariableDefinitions node,
- Node definition,
- InitializingFormalElement parameter,
- ConstantExpression defaultValue,
- int index,
- _) {
- assert(invariant(node, defaultValue != null));
- defaultValues[index] = defaultValue;
- fieldMap[parameter.fieldElement] = new PositionalArgumentReference(index);
- }
-
- visitNamedInitializingFormalDeclaration(
- VariableDefinitions node,
- Node definition,
- InitializingFormalElement parameter,
- ConstantExpression defaultValue,
- _) {
- assert(invariant(node, defaultValue != null));
- String name = parameter.name;
- defaultValues[name] = defaultValue;
- fieldMap[parameter.fieldElement] = new NamedArgumentReference(name);
- }
-
- /// Apply this visitor to the constructor [initializers].
- ConstructedConstantExpression applyInitializers(
- FunctionExpression constructor, _) {
- ConstructedConstantExpression constructorInvocation;
- InitializersStructure initializers =
- computeInitializersStructure(constructor);
- for (InitializerStructure structure in initializers.initializers) {
- if (structure.isConstructorInvoke) {
- constructorInvocation = structure.dispatch(this, _);
- } else {
- structure.dispatch(this, _);
- }
- }
- return constructorInvocation;
- }
-
- visitFieldInitializer(
- SendSet node,
- FieldElement field,
- Node initializer,
- _) {
- fieldMap[field] = apply(initializer);
- }
-
- visitParameterGet(
- Send node,
- ParameterElement parameter,
- _) {
- if (parameter.isNamed) {
- return new NamedArgumentReference(parameter.name);
- } else {
- return new PositionalArgumentReference(
- parameter.functionDeclaration.parameters.indexOf(parameter));
- }
- }
-
- ConstructedConstantExpression visitSuperConstructorInvoke(
- Send node,
- ConstructorElement superConstructor,
- InterfaceType type,
- NodeList arguments,
- CallStructure callStructure,
- _) {
- List<ConstantExpression> argumentExpression =
- arguments.nodes.map((a) => apply(a)).toList();
- return new ConstructedConstantExpression(
- type,
- superConstructor,
- callStructure,
- argumentExpression);
- }
-
- ConstructedConstantExpression visitImplicitSuperConstructorInvoke(
- FunctionExpression node,
- ConstructorElement superConstructor,
- InterfaceType type,
- _) {
- return new ConstructedConstantExpression(
- type,
- superConstructor,
- CallStructure.NO_ARGS,
- const <ConstantExpression>[]);
- }
-
- ConstructedConstantExpression visitThisConstructorInvoke(
- Send node,
- ConstructorElement thisConstructor,
- NodeList arguments,
- CallStructure callStructure,
- _) {
- List<ConstantExpression> argumentExpression =
- arguments.nodes.map((a) => apply(a)).toList();
- return new ConstructedConstantExpression(
- currentClass.thisType,
- thisConstructor,
- callStructure,
- argumentExpression);
- }
-
- @override
- ConstantExpression visitBinary(
- Send node,
- Node left,
- BinaryOperator operator,
- Node right,
- _) {
- return new BinaryConstantExpression(
- apply(left), operator, apply(right));
- }
-
-
- @override
- ConstantExpression visitUnary(
- Send node,
- UnaryOperator operator,
- Node expression,
- _) {
- return new UnaryConstantExpression(
- operator, apply(expression));
- }
-
- @override
- ConstantExpression visitStaticFieldGet(
- Send node,
- FieldElement field,
- _) {
- return new VariableConstantExpression(field);
- }
-
- @override
- ConstantExpression visitTopLevelFieldGet(
- Send node,
- FieldElement field,
- _) {
- return new VariableConstantExpression(field);
- }
-
- @override
- ConstantExpression visitLiteralInt(LiteralInt node) {
- return new IntConstantExpression(node.value);
- }
-
- @override
- ConstantExpression visitLiteralBool(LiteralBool node) {
- return new BoolConstantExpression(node.value);
- }
-
- @override
- ConstantExpression visitLiteralNull(LiteralNull node) {
- return new NullConstantExpression();
- }
-
- @override
- ConstantExpression visitLiteralString(LiteralString node) {
- return new StringConstantExpression(node.dartString.slowToString());
- }
-
- @override
- ConstantExpression visitConditional(Conditional node) {
- return new ConditionalConstantExpression(
- apply(node.condition),
- apply(node.thenExpression),
- apply(node.elseExpression));
- }
-
- @override
- ConstantExpression visitParenthesizedExpression(ParenthesizedExpression node) {
- return apply(node.expression);
- }
-
- @override
- ConstantExpression visitTopLevelFunctionInvoke(
- Send node,
- MethodElement function,
- NodeList arguments,
- CallStructure callStructure,
- _) {
- if (function.name != 'identical' || !function.library.isDartCore) {
- throw new UnsupportedError("Unexpected function call: $function");
- }
- return new IdenticalConstantExpression(
- apply(arguments.nodes.head), apply(arguments.nodes.tail.head));
- }
-
- @override
- ConstantExpression visitNamedArgument(NamedArgument node) {
- return apply(node.expression);
- }
-}
« no previous file with comments | « pkg/compiler/lib/src/constants/constant_constructors.dart ('k') | pkg/compiler/lib/src/elements/modelx.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698