| Index: editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/CompilationUnitImpl.java
|
| diff --git a/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/CompilationUnitImpl.java b/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/CompilationUnitImpl.java
|
| index 0f0dd0a93456a970d3a8659e88aa12150626d401..a10c1d4c599f5bb7e4bbe40728ab16b0ed3a2edd 100644
|
| --- a/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/CompilationUnitImpl.java
|
| +++ b/editor/tools/plugins/com.google.dart.tools.core/src/com/google/dart/tools/core/internal/model/CompilationUnitImpl.java
|
| @@ -18,6 +18,7 @@ import com.google.dart.compiler.DartCompilationError;
|
| import com.google.dart.compiler.ast.ASTVisitor;
|
| import com.google.dart.compiler.ast.DartBlock;
|
| import com.google.dart.compiler.ast.DartClass;
|
| +import com.google.dart.compiler.ast.DartClassTypeAlias;
|
| import com.google.dart.compiler.ast.DartComment;
|
| import com.google.dart.compiler.ast.DartDeclaration;
|
| import com.google.dart.compiler.ast.DartExpression;
|
| @@ -221,6 +222,31 @@ public class CompilationUnitImpl extends SourceFileElementImpl<CompilationUnit>
|
| }
|
|
|
| /**
|
| + * Parse a top-level type and add a Type as a child of the compilation unit to represent it.
|
| + */
|
| + @Override
|
| + public Void visitClassTypeAlias(DartClassTypeAlias node) {
|
| + String className = node.getClassName();
|
| + DartClassTypeAliasImpl typeImpl = new DartClassTypeAliasImpl(compilationUnit, className);
|
| + DartTypeInfo typeInfo = new DartTypeInfo();
|
| + List<DartElementImpl> children = Lists.newArrayList();
|
| + addNewElement(typeImpl, typeInfo);
|
| +
|
| + // add DartTypeParameter elements
|
| + addTypeParameters(node.getTypeParameters(), typeImpl, children);
|
| +
|
| + typeInfo.setSuperclassName(extractTypeName(node.getSuperclass(), false));
|
| + typeInfo.setInterfaceNames(extractTypeNames(node.getInterfaces(), false));
|
| + typeInfo.setSourceRangeStart(node.getSourceInfo().getOffset());
|
| + typeInfo.setSourceRangeEnd(node.getSourceInfo().getEnd());
|
| + captureDartDoc(node, typeInfo);
|
| + typeInfo.setNameRange(new SourceRangeImpl(node.getName()));
|
| + typeInfo.setChildren(DartElementImpl.toArray(children));
|
| + topLevelElements.add(typeImpl);
|
| + return null;
|
| + }
|
| +
|
| + /**
|
| * Parse a top-level variable and add a DartVariableImpl as a child of the compilation unit to
|
| * represent it.
|
| */
|
| @@ -1221,6 +1247,13 @@ public class CompilationUnitImpl extends SourceFileElementImpl<CompilationUnit>
|
| }
|
|
|
| @Override
|
| + public com.google.dart.tools.core.model.DartClassTypeAlias[] getClassTypeAliases()
|
| + throws DartModelException {
|
| + List<com.google.dart.tools.core.model.DartClassTypeAlias> typeList = getChildrenOfType(com.google.dart.tools.core.model.DartClassTypeAlias.class);
|
| + return typeList.toArray(new com.google.dart.tools.core.model.DartClassTypeAlias[typeList.size()]);
|
| + }
|
| +
|
| + @Override
|
| public CompilationUnit getCompilationUnit() {
|
| return this;
|
| }
|
| @@ -1629,6 +1662,12 @@ public class CompilationUnitImpl extends SourceFileElementImpl<CompilationUnit>
|
| }
|
| DartTypeImpl type = new DartTypeImpl(this, tokenizer.nextToken());
|
| return type.getHandleFromMemento(tokenizer, owner);
|
| + case MEMENTO_DELIMITER_CLASS_TYPE_ALIAS:
|
| + if (!tokenizer.hasMoreTokens()) {
|
| + return this;
|
| + }
|
| + DartClassTypeAliasImpl type2 = new DartClassTypeAliasImpl(this, tokenizer.nextToken());
|
| + return type2.getHandleFromMemento(tokenizer, owner);
|
| case MEMENTO_DELIMITER_VARIABLE:
|
| if (!tokenizer.hasMoreTokens()) {
|
| return this;
|
|
|