cc4b22ea10
http://code.google.com/p/dart/issues/detail?id=8059 R=brianwilkerson@google.com BUG= Review URL: https://codereview.chromium.org//12039054 git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@17518 260f80e4-7a28-3924-810f-c04153c831b5
331 lines
6.0 KiB
Java
331 lines
6.0 KiB
Java
// Copyright (c) 2012, 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.
|
|
|
|
package com.google.dart.compiler.resolver;
|
|
|
|
import com.google.common.collect.ImmutableSet;
|
|
import com.google.dart.compiler.ast.DartExpression;
|
|
import com.google.dart.compiler.ast.LibraryUnit;
|
|
import com.google.dart.compiler.type.DynamicType;
|
|
import com.google.dart.compiler.type.FunctionType;
|
|
import com.google.dart.compiler.type.InterfaceType;
|
|
import com.google.dart.compiler.type.Type;
|
|
import com.google.dart.compiler.type.Types;
|
|
|
|
import java.util.Collections;
|
|
import java.util.List;
|
|
import java.util.Set;
|
|
|
|
/**
|
|
* Dummy element corresponding to {@link DynamicType}.
|
|
*/
|
|
class DynamicElementImplementation extends AbstractNodeElement implements DynamicElement, MethodNodeElement {
|
|
|
|
private DynamicElementImplementation() {
|
|
super(null, "dynamic");
|
|
}
|
|
|
|
@Override
|
|
public ElementKind getKind() {
|
|
return ElementKind.DYNAMIC;
|
|
}
|
|
|
|
public static DynamicElementImplementation getInstance() {
|
|
return new DynamicElementImplementation();
|
|
}
|
|
|
|
@Override
|
|
public void setType(InterfaceType type) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public List<Type> getTypeParameters() {
|
|
return Collections.<Type>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public InterfaceType getSupertype() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public InterfaceType getDefaultClass() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setSupertype(InterfaceType element) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public List<Element> getMembers() {
|
|
return Collections.<Element>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public List<ConstructorElement> getConstructors() {
|
|
return Collections.<ConstructorElement>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public Scope getImportScope() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<InterfaceType> getInterfaces() {
|
|
return Collections.<InterfaceType>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public List<InterfaceType> getMixins() {
|
|
return Collections.<InterfaceType>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public DynamicType getType() {
|
|
return Types.newDynamicType();
|
|
}
|
|
|
|
@Override
|
|
public DynamicType getTypeVariable() {
|
|
return getType();
|
|
}
|
|
|
|
@Override
|
|
public ClassElement getEnclosingElement() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public boolean isConstructor() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isSynthetic() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public ConstructorElement getDefaultConstructor() {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public ConstructorElement getRedirectingFactoryConstructor() {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public void setDefaultConstructor(ConstructorElement defaultConstructor) {
|
|
throw new UnsupportedOperationException();
|
|
}
|
|
|
|
@Override
|
|
public boolean isStatic() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasBody() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isInterface() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String getNativeName() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<VariableElement> getParameters() {
|
|
return Collections.<VariableElement>emptyList();
|
|
}
|
|
|
|
@Override
|
|
public Type getReturnType() {
|
|
return getType();
|
|
}
|
|
|
|
@Override
|
|
public boolean isDynamic() {
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public boolean isObject() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public String getDeclarationNameWithTypeParameters() {
|
|
return "dynamic";
|
|
}
|
|
|
|
@Override
|
|
public boolean isObjectChild() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public Element lookupLocalElement(String name) {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public LibraryElement getLibrary() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Type getBound() {
|
|
return getType();
|
|
}
|
|
|
|
@Override
|
|
public Element getDeclaringElement() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public ConstructorElement lookupConstructor(String name) {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public FunctionType getFunctionType() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setFunctionType(FunctionType functionType) {
|
|
}
|
|
|
|
@Override
|
|
public List<InterfaceType> getAllSupertypes() {
|
|
return Collections.emptyList();
|
|
}
|
|
|
|
@Override
|
|
public Scope getScope() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public List<Element> getExportedElements() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public LibraryUnit getLibraryUnit() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public void setEntryPoint(MethodElement element) {
|
|
throw new AssertionError();
|
|
}
|
|
|
|
@Override
|
|
public MethodElement getEntryPoint() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public MethodElement getGetter() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public MethodElement getSetter() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public MethodElement getEnclosingFunction() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public ClassElement getClassElement() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public FieldElement getParameterInitializerElement() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public boolean isOptional() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public boolean isNamed() {
|
|
return false;
|
|
}
|
|
|
|
@Override
|
|
public DartExpression getDefaultValue() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public ClassElement getConstructorType() {
|
|
return this;
|
|
}
|
|
|
|
@Override
|
|
public String getRawName() {
|
|
return getName();
|
|
}
|
|
|
|
@Override
|
|
public void setType(Type type) {
|
|
super.setType(type);
|
|
}
|
|
|
|
@Override
|
|
public Type getConstantType() {
|
|
return null;
|
|
}
|
|
@Override
|
|
public List<Element> getUnimplementedMembers() {
|
|
return null;
|
|
}
|
|
|
|
@Override
|
|
public Set<Element> getOverridden() {
|
|
return ImmutableSet.of();
|
|
}
|
|
|
|
@Override
|
|
public LabeledStatementType getStatementType() {
|
|
return LabeledStatementType.STATEMENT;
|
|
}
|
|
|
|
@Override
|
|
public int getOpenBraceOffset() {
|
|
return -1;
|
|
}
|
|
|
|
@Override
|
|
public int getCloseBraceOffset() {
|
|
return -1;
|
|
}
|
|
|
|
@Override
|
|
public boolean hasSuperInvocation() {
|
|
return false;
|
|
}
|
|
}
|