TypeScript/tests/baselines/reference/recursiveClassReferenceTest.symbols
Anders Hejlsberg a4f9bf0fce
Create type aliases for unresolved type symbols (#45976)
* Create type aliases for unresolved type symbols

* Accept new baselines

* Update fourslash tests

* Unresolved import aliases create tagged unresolved symbols

* Add comments

* Accept new baselines

* Add fourslash tests
2021-09-23 13:21:27 -07:00

226 lines
12 KiB
Plaintext

=== tests/cases/compiler/recursiveClassReferenceTest.ts ===
// Scenario 1: Test reqursive function call with "this" parameter
// Scenario 2: Test recursive function call with cast and "this" parameter
declare module Sample.Thing {
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
export interface IWidget {
>IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
getDomNode(): any;
>getDomNode : Symbol(IWidget.getDomNode, Decl(recursiveClassReferenceTest.ts, 7, 27))
destroy();
>destroy : Symbol(IWidget.destroy, Decl(recursiveClassReferenceTest.ts, 8, 20))
gar(runner:(widget:Sample.Thing.IWidget)=>any):any;
>gar : Symbol(IWidget.gar, Decl(recursiveClassReferenceTest.ts, 9, 12))
>runner : Symbol(runner, Decl(recursiveClassReferenceTest.ts, 10, 6))
>widget : Symbol(widget, Decl(recursiveClassReferenceTest.ts, 10, 14))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
}
export interface ICodeThing {
>ICodeThing : Symbol(ICodeThing, Decl(recursiveClassReferenceTest.ts, 11, 2))
getDomNode(): Element;
>getDomNode : Symbol(ICodeThing.getDomNode, Decl(recursiveClassReferenceTest.ts, 13, 30))
>Element : Symbol(Element)
addWidget(widgetId:string, widget:IWidget);
>addWidget : Symbol(ICodeThing.addWidget, Decl(recursiveClassReferenceTest.ts, 15, 26))
>widgetId : Symbol(widgetId, Decl(recursiveClassReferenceTest.ts, 17, 12))
>widget : Symbol(widget, Decl(recursiveClassReferenceTest.ts, 17, 28))
>IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
focus();
>focus : Symbol(ICodeThing.focus, Decl(recursiveClassReferenceTest.ts, 17, 45))
//addWidget(widget: Sample.Thing.Widgets.IWidget);
}
export interface IAction {
>IAction : Symbol(IAction, Decl(recursiveClassReferenceTest.ts, 23, 2))
run(Thing:ICodeThing):boolean;
>run : Symbol(IAction.run, Decl(recursiveClassReferenceTest.ts, 25, 27))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 26, 6))
>ICodeThing : Symbol(ICodeThing, Decl(recursiveClassReferenceTest.ts, 11, 2))
getId():string;
>getId : Symbol(IAction.getId, Decl(recursiveClassReferenceTest.ts, 26, 32))
}
}
module Sample.Actions.Thing.Find {
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Actions : Symbol(Actions, Decl(recursiveClassReferenceTest.ts, 31, 14))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 31, 22))
>Find : Symbol(Find, Decl(recursiveClassReferenceTest.ts, 31, 28))
export class StartFindAction implements Sample.Thing.IAction {
>StartFindAction : Symbol(StartFindAction, Decl(recursiveClassReferenceTest.ts, 31, 34))
>Sample.Thing.IAction : Symbol(Sample.Thing.IAction, Decl(recursiveClassReferenceTest.ts, 23, 2))
>Sample.Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>IAction : Symbol(Sample.Thing.IAction, Decl(recursiveClassReferenceTest.ts, 23, 2))
public getId() { return "yo"; }
>getId : Symbol(StartFindAction.getId, Decl(recursiveClassReferenceTest.ts, 32, 63))
public run(Thing:Sample.Thing.ICodeThing):boolean {
>run : Symbol(StartFindAction.run, Decl(recursiveClassReferenceTest.ts, 34, 33))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 36, 13))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>ICodeThing : Symbol(Sample.Thing.ICodeThing, Decl(recursiveClassReferenceTest.ts, 11, 2))
return true;
}
}
}
module Sample.Thing.Widgets {
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>Widgets : Symbol(Widgets, Decl(recursiveClassReferenceTest.ts, 43, 20))
export class FindWidget implements Sample.Thing.IWidget {
>FindWidget : Symbol(FindWidget, Decl(recursiveClassReferenceTest.ts, 43, 29))
>Sample.Thing.IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
>Sample.Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
public gar(runner:(widget:Sample.Thing.IWidget)=>any) { if (true) {return runner(this);}}
>gar : Symbol(FindWidget.gar, Decl(recursiveClassReferenceTest.ts, 44, 58))
>runner : Symbol(runner, Decl(recursiveClassReferenceTest.ts, 46, 13))
>widget : Symbol(widget, Decl(recursiveClassReferenceTest.ts, 46, 21))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>IWidget : Symbol(IWidget, Decl(recursiveClassReferenceTest.ts, 5, 29))
>runner : Symbol(runner, Decl(recursiveClassReferenceTest.ts, 46, 13))
>this : Symbol(FindWidget, Decl(recursiveClassReferenceTest.ts, 43, 29))
private domNode:any = null;
>domNode : Symbol(FindWidget.domNode, Decl(recursiveClassReferenceTest.ts, 46, 91))
constructor(private codeThing: Sample.Thing.ICodeThing) {
>codeThing : Symbol(FindWidget.codeThing, Decl(recursiveClassReferenceTest.ts, 49, 14))
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>ICodeThing : Symbol(ICodeThing, Decl(recursiveClassReferenceTest.ts, 11, 2))
// scenario 1
codeThing.addWidget("addWidget", this);
>codeThing.addWidget : Symbol(ICodeThing.addWidget, Decl(recursiveClassReferenceTest.ts, 15, 26))
>codeThing : Symbol(codeThing, Decl(recursiveClassReferenceTest.ts, 49, 14))
>addWidget : Symbol(ICodeThing.addWidget, Decl(recursiveClassReferenceTest.ts, 15, 26))
>this : Symbol(FindWidget, Decl(recursiveClassReferenceTest.ts, 43, 29))
}
public getDomNode() {
>getDomNode : Symbol(FindWidget.getDomNode, Decl(recursiveClassReferenceTest.ts, 52, 3))
return domNode;
}
public destroy() {
>destroy : Symbol(FindWidget.destroy, Decl(recursiveClassReferenceTest.ts, 56, 3))
}
}
}
interface IMode { getInitialState(): IState;}
>IMode : Symbol(IMode, Decl(recursiveClassReferenceTest.ts, 63, 1))
>getInitialState : Symbol(IMode.getInitialState, Decl(recursiveClassReferenceTest.ts, 65, 17))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
class AbstractMode implements IMode { public getInitialState(): IState { return null;} }
>AbstractMode : Symbol(AbstractMode, Decl(recursiveClassReferenceTest.ts, 65, 45))
>IMode : Symbol(IMode, Decl(recursiveClassReferenceTest.ts, 63, 1))
>getInitialState : Symbol(AbstractMode.getInitialState, Decl(recursiveClassReferenceTest.ts, 66, 37))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
interface IState {}
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
interface Window {
>Window : Symbol(Window, Decl(recursiveClassReferenceTest.ts, 68, 19))
opener: Window;
>opener : Symbol(Window.opener, Decl(recursiveClassReferenceTest.ts, 70, 18))
>Window : Symbol(Window, Decl(recursiveClassReferenceTest.ts, 68, 19))
}
declare var self: Window;
>self : Symbol(self, Decl(recursiveClassReferenceTest.ts, 73, 11))
>Window : Symbol(Window, Decl(recursiveClassReferenceTest.ts, 68, 19))
module Sample.Thing.Languages.PlainText {
>Sample : Symbol(Sample, Decl(recursiveClassReferenceTest.ts, 0, 0), Decl(recursiveClassReferenceTest.ts, 29, 1), Decl(recursiveClassReferenceTest.ts, 41, 1), Decl(recursiveClassReferenceTest.ts, 73, 25))
>Thing : Symbol(Thing, Decl(recursiveClassReferenceTest.ts, 5, 22), Decl(recursiveClassReferenceTest.ts, 43, 14), Decl(recursiveClassReferenceTest.ts, 75, 14))
>Languages : Symbol(Languages, Decl(recursiveClassReferenceTest.ts, 75, 20))
>PlainText : Symbol(PlainText, Decl(recursiveClassReferenceTest.ts, 75, 30))
export class State implements IState {
>State : Symbol(State, Decl(recursiveClassReferenceTest.ts, 75, 41))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
constructor(private mode: IMode) { }
>mode : Symbol(State.mode, Decl(recursiveClassReferenceTest.ts, 78, 20))
>IMode : Symbol(IMode, Decl(recursiveClassReferenceTest.ts, 63, 1))
public clone():IState {
>clone : Symbol(State.clone, Decl(recursiveClassReferenceTest.ts, 78, 44))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
return this;
>this : Symbol(State, Decl(recursiveClassReferenceTest.ts, 75, 41))
}
public equals(other:IState):boolean {
>equals : Symbol(State.equals, Decl(recursiveClassReferenceTest.ts, 81, 3))
>other : Symbol(other, Decl(recursiveClassReferenceTest.ts, 83, 16))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
return this === other;
>this : Symbol(State, Decl(recursiveClassReferenceTest.ts, 75, 41))
>other : Symbol(other, Decl(recursiveClassReferenceTest.ts, 83, 16))
}
public getMode(): IMode { return mode; }
>getMode : Symbol(State.getMode, Decl(recursiveClassReferenceTest.ts, 85, 3))
>IMode : Symbol(IMode, Decl(recursiveClassReferenceTest.ts, 63, 1))
}
export class Mode extends AbstractMode {
>Mode : Symbol(Mode, Decl(recursiveClassReferenceTest.ts, 88, 2))
>AbstractMode : Symbol(AbstractMode, Decl(recursiveClassReferenceTest.ts, 65, 45))
// scenario 2
public getInitialState(): IState {
>getInitialState : Symbol(Mode.getInitialState, Decl(recursiveClassReferenceTest.ts, 90, 41))
>IState : Symbol(IState, Decl(recursiveClassReferenceTest.ts, 66, 88))
return new State(self);
>State : Symbol(State, Decl(recursiveClassReferenceTest.ts, 75, 41))
>self : Symbol(self, Decl(recursiveClassReferenceTest.ts, 73, 11))
}
}
}