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

Unified Diff: pkg/analyzer/lib/src/generated/html.dart

Issue 134533007: New analyzer snapshot. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 11 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
« no previous file with comments | « pkg/analyzer/lib/src/generated/error.dart ('k') | pkg/analyzer/lib/src/generated/instrumentation.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analyzer/lib/src/generated/html.dart
diff --git a/pkg/analyzer/lib/src/generated/html.dart b/pkg/analyzer/lib/src/generated/html.dart
index 36fc3fa9389190551f81fe6b3beed63e7d6fc201..2c333bae56fb5efa8d8966195fc745a128f93e1c 100644
--- a/pkg/analyzer/lib/src/generated/html.dart
+++ b/pkg/analyzer/lib/src/generated/html.dart
@@ -233,6 +233,23 @@ class RecursiveXmlVisitor<R> implements XmlVisitor<R> {
*/
class HtmlUnitUtils {
/**
+ * Returns the [XmlAttributeNode] that is part of the given [HtmlUnit] and encloses
+ * the given offset.
+ */
+ static XmlAttributeNode getAttributeNode(HtmlUnit htmlUnit, int offset) {
+ if (htmlUnit == null) {
+ return null;
+ }
+ List<XmlAttributeNode> result = [null];
+ try {
+ htmlUnit.accept(new RecursiveXmlVisitor_7(offset, result));
+ } on HtmlUnitUtils_FoundAttributeNodeError catch (e) {
+ return result[0];
+ }
+ return null;
+ }
+
+ /**
* Returns the best [Element] of the given [Expression].
*/
static Element getElement(Expression expression) {
@@ -261,7 +278,7 @@ class HtmlUnitUtils {
VariableElement variable = element as VariableElement;
Type2 type = variable.type;
if (variable.nameOffset == 0 && type is InterfaceType) {
- element = (type as InterfaceType).element;
+ element = type.element;
}
}
}
@@ -278,7 +295,7 @@ class HtmlUnitUtils {
}
List<Expression> result = [null];
try {
- htmlUnit.accept(new RecursiveXmlVisitor_7(offset, result));
+ htmlUnit.accept(new RecursiveXmlVisitor_8(offset, result));
} on HtmlUnitUtils_FoundExpressionError catch (e) {
return result[0];
}
@@ -286,6 +303,23 @@ class HtmlUnitUtils {
}
/**
+ * Returns the [XmlTagNode] that is part of the given [HtmlUnit] and encloses the
+ * given offset.
+ */
+ static XmlTagNode getTagNode(HtmlUnit htmlUnit, int offset) {
+ if (htmlUnit == null) {
+ return null;
+ }
+ List<XmlTagNode> result = [null];
+ try {
+ htmlUnit.accept(new RecursiveXmlVisitor_9(offset, result));
+ } on HtmlUnitUtils_FoundTagNodeError catch (e) {
+ return result[0];
+ }
+ return null;
+ }
+
+ /**
* Returns `true` if the given [HtmlUnit] has Angular annotation.
*/
static bool isAngular(HtmlUnit htmlUnit) => false; // AngularHtmlUnitResolver.hasAngularAnnotation(htmlUnit);
@@ -298,24 +332,47 @@ class HtmlUnitUtils {
if (root.offset <= offset && offset < root.end) {
ASTNode dartNode = new NodeLocator.con1(offset).searchWithin(root);
if (dartNode is Expression) {
- return dartNode as Expression;
+ return dartNode;
}
}
return null;
}
}
+class HtmlUnitUtils_FoundAttributeNodeError extends Error {
+}
+
class HtmlUnitUtils_FoundExpressionError extends Error {
}
+class HtmlUnitUtils_FoundTagNodeError extends Error {
+}
+
class RecursiveXmlVisitor_7 extends RecursiveXmlVisitor<Object> {
int offset = 0;
- List<Expression> result;
+ List<XmlAttributeNode> result;
RecursiveXmlVisitor_7(this.offset, this.result) : super();
Object visitXmlAttributeNode(XmlAttributeNode node) {
+ Token nameToken = node.nameToken;
+ if (nameToken.offset <= offset && offset < nameToken.end) {
+ result[0] = node;
+ throw new HtmlUnitUtils_FoundAttributeNodeError();
+ }
+ return super.visitXmlAttributeNode(node);
+ }
+}
+
+class RecursiveXmlVisitor_8 extends RecursiveXmlVisitor<Object> {
+ int offset = 0;
+
+ List<Expression> result;
+
+ RecursiveXmlVisitor_8(this.offset, this.result) : super();
+
+ Object visitXmlAttributeNode(XmlAttributeNode node) {
findExpression(offset, result, node.expressions);
return super.visitXmlAttributeNode(node);
}
@@ -337,6 +394,24 @@ class RecursiveXmlVisitor_7 extends RecursiveXmlVisitor<Object> {
}
}
+class RecursiveXmlVisitor_9 extends RecursiveXmlVisitor<Object> {
+ int offset = 0;
+
+ List<XmlTagNode> result;
+
+ RecursiveXmlVisitor_9(this.offset, this.result) : super();
+
+ Object visitXmlTagNode(XmlTagNode node) {
+ super.visitXmlTagNode(node);
+ Token tagToken = node.tagToken;
+ if (tagToken.offset <= offset && offset < tagToken.end) {
+ result[0] = node;
+ throw new HtmlUnitUtils_FoundTagNodeError();
+ }
+ return null;
+ }
+}
+
/**
* Instances of the class `HtmlScriptTagNode` represent a script tag within an HTML file that
* references a Dart script.
@@ -399,6 +474,11 @@ abstract class XmlNode {
XmlNode _parent;
/**
+ * The element associated with this node or `null` if the receiver is not resolved.
+ */
+ Element _element;
+
+ /**
* Use the given visitor to visit this node.
*
* @param visitor the visitor that will visit this node
@@ -414,6 +494,13 @@ abstract class XmlNode {
Token get beginToken;
/**
+ * Return the element associated with this node.
+ *
+ * @return the element or `null` if the receiver is not resolved
+ */
+ Element get element => _element;
+
+ /**
* Return the offset of the character immediately following the last character of this node's
* source range. This is equivalent to `node.getOffset() + node.getLength()`. For an html
* unit this will be equal to the length of the unit's source.
@@ -468,6 +555,15 @@ abstract class XmlNode {
*/
XmlNode get parent => _parent;
+ /**
+ * Set the element associated with this node.
+ *
+ * @param element the element
+ */
+ void set element(Element element) {
+ this._element = element;
+ }
+
String toString() {
PrintStringWriter writer = new PrintStringWriter();
accept(new ToSourceVisitor(writer));
@@ -518,9 +614,9 @@ abstract class XmlNode {
*/
void appendIdentifier(JavaStringBuilder builder, XmlNode node) {
if (node is XmlTagNode) {
- builder.append((node as XmlTagNode).tag);
+ builder.append(node.tag);
} else if (node is XmlAttributeNode) {
- builder.append((node as XmlAttributeNode).name);
+ builder.append(node.name);
} else {
builder.append("htmlUnit");
}
@@ -2044,11 +2140,6 @@ class HtmlUnit extends XmlNode {
List<XmlTagNode> _tagNodes;
/**
- * The element associated with this HTML unit or `null` if the receiver is not resolved.
- */
- HtmlElementImpl element;
-
- /**
* The element associated with Dart pieces in this HTML unit or `null` if the receiver is
* not resolved.
*/
@@ -2069,6 +2160,13 @@ class HtmlUnit extends XmlNode {
accept(XmlVisitor visitor) => visitor.visitHtmlUnit(this);
/**
+ * Return the element associated with this HTML unit.
+ *
+ * @return the element or `null` if the receiver is not resolved
+ */
+ HtmlElement get element => super.element as HtmlElement;
+
+ /**
* Answer the tag nodes contained in the receiver. Callers should not manipulate the returned list
* to edit the AST structure.
*
@@ -2076,6 +2174,13 @@ class HtmlUnit extends XmlNode {
*/
List<XmlTagNode> get tagNodes => _tagNodes;
+ void set element(Element element) {
+ if (element != null && element is! HtmlElement) {
+ throw new IllegalArgumentException("HtmlElement expected, but ${element.runtimeType} given");
+ }
+ super.element = element;
+ }
+
void visitChildren(XmlVisitor visitor) {
for (XmlTagNode node in _tagNodes) {
node.accept(visitor);
« no previous file with comments | « pkg/analyzer/lib/src/generated/error.dart ('k') | pkg/analyzer/lib/src/generated/instrumentation.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698