package org.fandev.lang.fan.psi.impl;
import com.intellij.psi.PsiType;
import com.intellij.psi.PsiTypeVisitor;
import com.intellij.psi.PsiAnnotation;
import com.intellij.psi.search.GlobalSearchScope;
import org.fandev.lang.fan.psi.api.statements.typeDefs.FanTypeDefinition;
import org.fandev.lang.fan.psi.api.types.FanFuncTypeElement;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
/**
* Date: Jul 19, 2009
* Time: 11:25:33 PM
*
* @author Dror Bereznitsky
*/
public class FanFuncType extends PsiType {
private FanFuncTypeElement element;
// TODO [Dror] maybe find something better as the constructor argument
public FanFuncType(final FanFuncTypeElement element) {
super(PsiAnnotation.EMPTY_ARRAY);
this.element = element;
}
public PsiType getReturnType() {
return element.getReturnType().getType();
}
public FanTypeDefinition getFuncType() {
return element.getFuncType();
}
public String getPresentableText() {
return element.getText();
}
public String getCanonicalText() {
return element.getText();
}
public String getInternalCanonicalText() {
return element.getText();
}
public boolean isValid() {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
public boolean equalsToText(@NonNls final String s) {
return false; //To change body of implemented methods use File | Settings | File Templates.
}
public <A> A accept(final PsiTypeVisitor<A> aPsiTypeVisitor) {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
public GlobalSearchScope getResolveScope() {
return null; //To change body of implemented methods use File | Settings | File Templates.
}
@NotNull
public PsiType[] getSuperTypes() {
return new PsiType[0];
}
}