Skip to content

Commit

Permalink
fix visitor method overload type signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
trxcllnt committed Jan 9, 2019
1 parent d165413 commit 4b58bde
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 49 deletions.
10 changes: 4 additions & 6 deletions js/src/visitor/get.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,10 @@ import {
} from '../type';

export interface GetVisitor extends Visitor {
visitMany <T extends Vector> (nodes: T[], indices: number[]): T['TValue'][];
visit <T extends Vector> (node: T, index: number ): T['TValue'];
getVisitFn<T extends Type> (node: T ): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
getVisitFn<T extends DataType>(node: Vector<T>): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
getVisitFn<T extends DataType>(node: Data<T> ): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
getVisitFn<T extends DataType>(node: T ): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
visit<T extends Vector> (node: T, index: number): T['TValue'];
visitMany<T extends Vector> (nodes: T[], indices: number[]): T['TValue'][];
getVisitFn<T extends Type> (node: T): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): (vector: Vector<T>, index: number) => Vector<T>['TValue'];
visitNull <T extends Null> (vector: Vector<T>, index: number): T['TValue'];
visitBool <T extends Bool> (vector: Vector<T>, index: number): T['TValue'];
visitInt <T extends Int> (vector: Vector<T>, index: number): T['TValue'];
Expand Down
8 changes: 3 additions & 5 deletions js/src/visitor/indexof.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,10 @@ import {
} from '../type';

export interface IndexOfVisitor extends Visitor {
visit<T extends Vector> (node: T, value: T['TValue'] | null, index?: number): number;
visitMany <T extends Vector> (nodes: T[], values: (T['TValue'] | null)[], indices: (number | undefined)[]): number[];
visit <T extends Vector> (node: T, value: T['TValue'] | null, index?: number ): number;
getVisitFn<T extends Type> (node: T ): (vector: Vector<T>, value: Vector<T>['TValue'] | null, index?: number) => number;
getVisitFn<T extends DataType>(node: Vector<T> ): (vector: Vector<T>, value: T['TValue'] | null, index?: number) => number;
getVisitFn<T extends DataType>(node: Data<T> ): (vector: Vector<T>, value: T['TValue'] | null, index?: number) => number;
getVisitFn<T extends DataType>(node: T ): (vector: Vector<T>, value: T['TValue'] | null, index?: number) => number;
getVisitFn<T extends Type> (node: T): (vector: Vector<T>, value: Vector<T>['TValue'] | null, index?: number) => number;
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): (vector: Vector<T>, value: T['TValue'] | null, index?: number) => number;
visitNull <T extends Null> (vector: Vector<T>, value: T['TValue'] | null, index?: number): number;
visitBool <T extends Bool> (vector: Vector<T>, value: T['TValue'] | null, index?: number): number;
visitInt <T extends Int> (vector: Vector<T>, value: T['TValue'] | null, index?: number): number;
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/iterator.ts
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,10 @@ import {
} from '../type';

export interface IteratorVisitor extends Visitor {
visitMany <T extends Vector> (nodes: T[] ): IterableIterator<T['TValue'] | null>[];
visit <T extends Vector> (node: T ): IterableIterator<T['TValue'] | null>;
getVisitFn<T extends Type> (node: T ): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
getVisitFn<T extends DataType>(node: Vector<T>): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
getVisitFn<T extends DataType>(node: Data<T> ): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
getVisitFn<T extends DataType>(node: T ): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
visit<T extends Vector>(node: T): IterableIterator<T['TValue'] | null>;
visitMany <T extends Vector>(nodes: T[]): IterableIterator<T['TValue'] | null>[];
getVisitFn<T extends Type>(node: T): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): (vector: Vector<T>) => IterableIterator<Vector<T>['TValue'] | null>;
visitNull <T extends Null> (vector: Vector<T>): IterableIterator<T['TValue'] | null>;
visitBool <T extends Bool> (vector: Vector<T>): IterableIterator<T['TValue'] | null>;
visitInt <T extends Int> (vector: Vector<T>): IterableIterator<T['TValue'] | null>;
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/set.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,10 @@ import {
} from '../type';

export interface SetVisitor extends Visitor {
visitMany <T extends Vector> (nodes: T[], indices: number[], values: T['TValue'][]): void[];
visit <T extends Vector> (node: T, index: number, value: T['TValue'] ): void;
getVisitFn<T extends Type> (node: T ): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
getVisitFn<T extends DataType>(node: Vector<T>): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
getVisitFn<T extends DataType>(node: Data<T> ): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
getVisitFn<T extends DataType>(node: T ): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
visit<T extends Vector>(node: T, index: number, value: T['TValue']): void;
visitMany<T extends Vector>(nodes: T[], indices: number[], values: T['TValue'][]): void[];
getVisitFn<T extends Type>(node: T): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): (vector: Vector<T>, index: number, value: Vector<T>['TValue']) => void;
visitNull <T extends Null> (vector: Vector<T>, index: number, value: T['TValue']): void;
visitBool <T extends Bool> (vector: Vector<T>, index: number, value: T['TValue']): void;
visitInt <T extends Int> (vector: Vector<T>, index: number, value: T['TValue']): void;
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/toarray.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,12 +33,10 @@ import {
} from '../type';

export interface ToArrayVisitor extends Visitor {
visitMany <T extends Vector> (nodes: T[] ): T['TArray'][];
visit <T extends Vector> (node: T ): T['TArray'];
getVisitFn<T extends Type> (node: T ): (vector: Vector<T>) => Vector<T>['TArray'];
getVisitFn<T extends DataType>(node: Vector<T>): (vector: Vector<T>) => Vector<T>['TArray'];
getVisitFn<T extends DataType>(node: Data<T> ): (vector: Vector<T>) => Vector<T>['TArray'];
getVisitFn<T extends DataType>(node: T ): (vector: Vector<T>) => Vector<T>['TArray'];
visit<T extends Vector>(node: T): T['TArray'];
visitMany<T extends Vector>(nodes: T[]): T['TArray'][];
getVisitFn<T extends Type>(node: T): (vector: Vector<T>) => Vector<T>['TArray'];
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): (vector: Vector<T>) => Vector<T>['TArray'];
visitNull <T extends Null> (vector: Vector<T>): Vector<T>['TArray'];
visitBool <T extends Bool> (vector: Vector<T>): Vector<T>['TArray'];
visitInt <T extends Int> (vector: Vector<T>): Vector<T>['TArray'];
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/typector.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,10 @@ import { Vector } from '../interfaces';
import { DataTypeCtor } from '../interfaces';

export interface GetDataTypeConstructor extends Visitor {
visitMany <T extends Type> (nodes: T[] ): DataTypeCtor<T>[];
visit <T extends Type> (node: T, ): DataTypeCtor<T>;
getVisitFn<T extends Type> (node: T ): () => DataTypeCtor<T>;
getVisitFn<T extends DataType>(node: Vector<T>): () => DataTypeCtor<T>;
getVisitFn<T extends DataType>(node: Data<T> ): () => DataTypeCtor<T>;
getVisitFn<T extends DataType>(node: T ): () => DataTypeCtor<T>;
visit<T extends Type>(node: T): DataTypeCtor<T>;
visitMany<T extends Type>(nodes: T[]): DataTypeCtor<T>[];
getVisitFn<T extends Type>(node: T): () => DataTypeCtor<T>;
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): () => DataTypeCtor<T>;
}

export class GetDataTypeConstructor extends Visitor {
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/vectorassembler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,12 +31,10 @@ import {
} from '../type';

export interface VectorAssembler extends Visitor {
visitMany <T extends Vector> (nodes: T[]): this[];
visit <T extends Vector> (node: T ): this;
getVisitFn<T extends Type> (node: T ): (vector: VType<T>) => this;
getVisitFn<T extends DataType>(node: VType<T>): (vector: VType<T>) => this;
getVisitFn<T extends DataType>(node: Data<T> ): (vector: VType<T>) => this;
getVisitFn<T extends DataType>(node: T ): (vector: VType<T>) => this;
visit<T extends Vector>(node: T): this;
visitMany<T extends Vector>(nodes: T[]): this[];
getVisitFn<T extends Type>(node: T): (vector: VType<T>) => this;
getVisitFn<T extends DataType>(node: VType<T> | Data<T> | T): (vector: VType<T>) => this;

visitBool <T extends Bool> (vector: VType<T>): this;
visitInt <T extends Int> (vector: VType<T>): this;
Expand Down
10 changes: 4 additions & 6 deletions js/src/visitor/vectorctor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,12 +41,10 @@ import { UnionVector, DenseUnionVector, SparseUnionVector } from '../vector/unio
import { Utf8Vector } from '../vector/utf8';

export interface GetVectorConstructor extends Visitor {
visitMany <T extends Type> (nodes: T[] ): VectorCtor<T>[];
visit <T extends Type> (node: T, ): VectorCtor<T>;
getVisitFn<T extends Type> (node: T ): () => VectorCtor<T>;
getVisitFn<T extends DataType>(node: Vector<T>): () => VectorCtor<T>;
getVisitFn<T extends DataType>(node: Data<T> ): () => VectorCtor<T>;
getVisitFn<T extends DataType>(node: T ): () => VectorCtor<T>;
visit<T extends Type>(node: T): VectorCtor<T>;
visitMany <T extends Type>(nodes: T[]): VectorCtor<T>[];
getVisitFn<T extends Type>(node: T): () => VectorCtor<T>;
getVisitFn<T extends DataType>(node: Vector<T> | Data<T> | T): () => VectorCtor<T>;
}

export class GetVectorConstructor extends Visitor {
Expand Down
4 changes: 2 additions & 2 deletions js/src/visitor/vectorloader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ import { toArrayBufferView } from '../util/buffer';
import { BufferRegion, FieldNode } from '../ipc/metadata/message';

export interface VectorLoader extends Visitor {
visitMany <T extends DataType>(nodes: (Field<T> | T)[]): Data<T>[];
visit <T extends DataType>(node: Field<T> | T ): Data<T>;
visit<T extends DataType>(node: Field<T> | T): Data<T>;
visitMany<T extends DataType>(nodes: (Field<T> | T)[]): Data<T>[];
}

export class VectorLoader extends Visitor {
Expand Down

0 comments on commit 4b58bde

Please sign in to comment.