All files / src/abap/5_syntax/expressions dereference.ts

88.23% Statements 15/17
85.71% Branches 6/7
100% Functions 1/1
88.23% Lines 15/17

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 171x 1x 1x 1x 1x 10x 10x 10x 10x 1x 1x 10x     9x 9x 1x
import {AnyType, DataReference, UnknownType, VoidType} from "../../types/basic";
import {AbstractType} from "../../types/basic/_abstract_type";
 
export class Dereference {
  public runSyntax(type: AbstractType | undefined): AbstractType | undefined {
    if (type instanceof VoidType
        || type instanceof AnyType
        || type === undefined
        || type instanceof UnknownType) {
      return type;
    }
    if (!(type instanceof DataReference)) {
      throw new Error("Not a data reference, cannot be dereferenced");
    }
    return type.getType();
  }
}