Package ro.redeul.google.go.lang.psi.impl.expressions.primary

Source Code of ro.redeul.google.go.lang.psi.impl.expressions.primary.GoTypeAssertionExpressionImpl

package ro.redeul.google.go.lang.psi.impl.expressions.primary;

import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
import ro.redeul.google.go.lang.psi.expressions.GoPrimaryExpression;
import ro.redeul.google.go.lang.psi.expressions.primary.GoTypeAssertionExpression;
import ro.redeul.google.go.lang.psi.impl.expressions.GoExpressionBase;
import ro.redeul.google.go.lang.psi.types.GoPsiType;
import ro.redeul.google.go.lang.psi.typing.GoType;
import ro.redeul.google.go.lang.psi.typing.GoTypes;
import ro.redeul.google.go.lang.stubs.GoNamesCache;

public class GoTypeAssertionExpressionImpl extends GoExpressionBase implements GoTypeAssertionExpression {

    public GoTypeAssertionExpressionImpl(@NotNull ASTNode node) {
        super(node);
    }

    @NotNull
    @Override
    protected GoType[] resolveTypes() {

        GoNamesCache namesCache = GoNamesCache.getInstance(getProject());
        return new GoType[]{
            types().fromPsiType(getAssertedType()),
            types().getBuiltin(GoTypes.Builtin.Bool)
        };
    }

    @Override
    public GoPrimaryExpression getBaseExpression() {
        return findChildByClass(GoPrimaryExpression.class);
    }

    @Override
    public GoPsiType getAssertedType() {
        return findChildByClass(GoPsiType.class);
    }
}
TOP

Related Classes of ro.redeul.google.go.lang.psi.impl.expressions.primary.GoTypeAssertionExpressionImpl

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.