Skip to content
This repository has been archived by the owner on Jan 30, 2022. It is now read-only.

Commit

Permalink
feat: allow overloaded fluent signatures
Browse files Browse the repository at this point in the history
  • Loading branch information
0x706b committed Jan 25, 2022
1 parent 31a67af commit 3430f69
Showing 1 changed file with 4 additions and 5 deletions.
9 changes: 4 additions & 5 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -42776,22 +42776,21 @@ namespace ts {
function getEtsFluentSymbol(name: string, dataFirst: FunctionDeclaration) {
const type = getTypeOfNode(dataFirst);
const signatures = getSignaturesOfType(type, SignatureKind.Call);
const method = etsThisifySignature(signatures[0]);
const methods = signatures.map(etsThisifySignature);
const symbol = createSymbol(SymbolFlags.Function, name as __String);
symbol.declarations = [dataFirst];
symbol.valueDeclaration = dataFirst;
symbol.parent = dataFirst.symbol.parent;
const final = createAnonymousType(symbol, emptySymbols, [method], [], []);
const final = createAnonymousType(symbol, emptySymbols, methods, [], []);
return createSymbolWithType(symbol, final);
}
function getEtsStaticSymbol(name: string, dataFirst: FunctionDeclaration) {
const signatures = getSignaturesOfType(getTypeOfNode(dataFirst), SignatureKind.Call);
const call = signatures[0];
const method = cloneSignature(call);
const methods = signatures.map(cloneSignature);
const symbol = createSymbol(SymbolFlags.Function, name as __String);
symbol.declarations = [dataFirst];
symbol.parent = dataFirst.symbol.parent;
const final = createAnonymousType(symbol, emptySymbols, [method], [], []);
const final = createAnonymousType(symbol, emptySymbols, methods, [], []);
return createSymbolWithType(symbol, final);
}
function etsInitTypeChecker() {
Expand Down

0 comments on commit 3430f69

Please sign in to comment.