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

76.47% Statements 13/17
33.33% Branches 1/3
100% Functions 1/1
76.47% Lines 13/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 11x 11x 11x 11x     11x     11x 11x 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();
  }
}