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

Unified Diff: sdk/lib/_internal/compiler/implementation/elements/modelx.dart

Issue 90713003: Dart2js option to dump info about compilation (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
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 side-by-side diff with in-line comments
Download patch
Index: sdk/lib/_internal/compiler/implementation/elements/modelx.dart
diff --git a/sdk/lib/_internal/compiler/implementation/elements/modelx.dart b/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
index b53316feecc2636131146928b347db145baaafb3..505d40900b5b680e73da3e69c0e6fd985eff4cf8 100644
--- a/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
+++ b/sdk/lib/_internal/compiler/implementation/elements/modelx.dart
@@ -31,7 +31,9 @@ import '../scanner/scannerlib.dart' show Token, EOF_TOKEN;
import '../ordered_typeset.dart' show OrderedTypeSet;
-class ElementX implements Element {
+import 'visitor.dart' show ElementVisitor;
+
+abstract class ElementX implements Element {
static int elementHashCode = 0;
final String name;
@@ -356,6 +358,8 @@ class ErroneousElementX extends ElementX implements ErroneousElement {
String get message => '${messageKind.message(messageArguments)}';
String toString() => '<$name: $message>';
+
+ accept(ElementVisitor visitor) => visitor.visitErroneousElementX(this);
}
/// A message attached to a [WarnOnUseElementX].
@@ -416,6 +420,8 @@ class WarnOnUseElementX extends ElementX implements WarnOnUseElement {
}
return unwrapped;
}
+
+ accept(ElementVisitor visitor) => visitor.visitWarnOnUseElementX(this);
}
/**
@@ -483,6 +489,8 @@ class AmbiguousElementX extends ElementX implements AmbiguousElement {
});
}
}
+
+ accept(ElementVisitor visitor) => visitor.visitAmbiguousElementX(this);
}
class ScopeX {
@@ -637,6 +645,8 @@ class CompilationUnitElementX extends ElementX
if (this == other) return 0;
return '${script.uri}'.compareTo('${other.script.uri}');
}
+
+ accept(ElementVisitor visitor) => visitor.visitCompilationUnitElement(this);
}
class Importers {
@@ -994,6 +1004,8 @@ class LibraryElementX extends ElementX implements LibraryElement {
if (this == other) return 0;
return getLibraryOrScriptName().compareTo(other.getLibraryOrScriptName());
}
+
+ accept(ElementVisitor visitor) => visitor.visitLibraryElementX(this);
}
class PrefixElementX extends ElementX implements PrefixElement {
@@ -1013,6 +1025,8 @@ class PrefixElementX extends ElementX implements PrefixElement {
void addImport(Element element, Import import, DiagnosticListener listener) {
importScope.addImport(this, element, import, listener);
}
+
+ accept(ElementVisitor visitor) => visitor.visitPrefixElementX(this);
}
class TypedefElementX extends ElementX implements TypedefElement {
@@ -1096,6 +1110,8 @@ class TypedefElementX extends ElementX implements TypedefElement {
computeType(compiler).accept(visitor, null);
hasBeenCheckedForCycles = true;
}
+
+ accept(ElementVisitor visitor) => visitor.visitTypedefElementX(this);
}
class VariableElementX extends ElementX implements VariableElement {
@@ -1111,6 +1127,12 @@ class VariableElementX extends ElementX implements VariableElement {
: this.variables = variables,
super(name, kind, variables.enclosingElement);
+ VariableElementX.synthetic(String name,
+ ElementKind kind,
+ Element enclosing) :
+ variables = null,
+ super(name, kind, enclosing);
+
Node parseNode(DiagnosticListener listener) {
if (cachedNode != null) return cachedNode;
VariableDefinitions definitions = variables.parseNode(listener);
@@ -1133,13 +1155,13 @@ class VariableElementX extends ElementX implements VariableElement {
return variables.computeType(compiler);
}
- DartType get type => variables.type;
-
bool isInstanceMember() => variables.isInstanceMember();
// Note: cachedNode.getBeginToken() will not be correct in all
// cases, for example, for function typed parameters.
Token position() => findMyName(variables.position());
+
+ accept(ElementVisitor visitor) => visitor.visitVariableElementX(this);
}
/**
@@ -1163,6 +1185,8 @@ class FieldParameterElementX extends VariableElementX
}
return super.computeType(compiler);
}
+
+ accept(ElementVisitor visitor) => visitor.visitFieldParameterElementX(this);
}
// This element represents a list of variable or field declaration.
@@ -1231,6 +1255,8 @@ class VariableListElementX extends ElementX implements VariableListElement {
bool isInstanceMember() {
return isMember() && !modifiers.isStatic();
}
+
+ accept(ElementVisitor visitor) => visitor.visitVariableListElementX(this);
}
class AbstractFieldElementX extends ElementX implements AbstractFieldElement {
@@ -1282,6 +1308,8 @@ class AbstractFieldElementX extends ElementX implements AbstractFieldElement {
bool isInstanceMember() {
return isMember() && !modifiers.isStatic();
}
+
+ accept(ElementVisitor visitor) => visitor.visitAbstractFieldElementX(this);
}
// TODO(johnniwinther): [FunctionSignature] should be merged with
@@ -1549,6 +1577,8 @@ class FunctionElementX extends ElementX implements FunctionElement {
(isFunction() || isAccessor()) &&
_hasNoBody;
}
+
+ accept(ElementVisitor visitor) => visitor.visitFunctionElementX(this);
}
class ConstructorBodyElementX extends FunctionElementX
@@ -1578,6 +1608,8 @@ class ConstructorBodyElementX extends FunctionElementX
}
Token position() => constructor.position();
+
+ accept(ElementVisitor visitor) => visitor.visitConstructorBodyElementX(this);
}
/**
@@ -1626,6 +1658,10 @@ class SynthesizedConstructorElementX extends FunctionElementX {
get declaration => this;
get implementation => this;
get defaultImplementation => this;
+
+ accept(ElementVisitor visitor) {
+ visitor.visitSynthesizedConstructorElementX(this);
+ }
}
class VoidElementX extends ElementX {
@@ -1635,6 +1671,8 @@ class VoidElementX extends ElementX {
throw 'internal error: parseNode on void';
}
bool impliesType() => true;
+
+ accept(ElementVisitor visitor) => visitor.visitVoidElementX(this);
}
class TypeDeclarationElementX {
@@ -2260,6 +2298,8 @@ class MixinApplicationElementX extends BaseClassElementX
return TypeDeclarationElementX.createTypeVariables(
this, named.typeParameters);
}
+
+ accept(ElementVisitor visitor) => visitor.visitMixinApplicationElement(this);
}
class LabelElementX extends ElementX implements LabelElement {
@@ -2296,6 +2336,8 @@ class LabelElementX extends ElementX implements LabelElement {
Token position() => label.getBeginToken();
String toString() => "${labelName}:";
+
+ accept(ElementVisitor visitor) => visitor.visitLabelElementX(this);
}
// Represents a reference to a statement or switch-case, either by label or the
@@ -2324,6 +2366,8 @@ class TargetElementX extends ElementX implements TargetElement {
Token position() => statement.getBeginToken();
String toString() => statement.toString();
+
+ accept(ElementVisitor visitor) => visitor.visitTargetElementX(this);
}
class TypeVariableElementX extends ElementX implements TypeVariableElement {
@@ -2342,6 +2386,8 @@ class TypeVariableElementX extends ElementX implements TypeVariableElement {
String toString() => "${enclosingElement.toString()}.${name}";
Token position() => cachedNode.getBeginToken();
+
+ accept(ElementVisitor visitor) => visitor.visitTypeVariableElementX(this);
}
/**

Powered by Google App Engine
This is Rietveld 408576698