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

71.43% Statements 5/7
75% Branches 6/8
100% Functions 1/1
71.43% Lines 5/7

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   2x           2x     2x    
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 {
    Iif (type instanceof VoidType
        || type instanceof AnyType
        || type === undefined
        || type instanceof UnknownType) {
      return type;
    }
    Iif (!(type instanceof DataReference)) {
      throw new Error("Not a data reference, cannot be dereferenced");
    }
    return type.getType();
  }
}