MCPcopy Create free account
hub / github.com/microsoft/typescript-go / NewProgram

Function NewProgram

internal/execute/incremental/program.go:40–58  ·  view source on GitHub ↗
(program *compiler.Program, oldProgram *Program, host Host, testing bool)

Source from the content-addressed store, hash-verified

38var _ compiler.ProgramLike = (*Program)(nil)
39
40func NewProgram(program *compiler.Program, oldProgram *Program, host Host, testing bool) *Program {
41 incrementalProgram := &Program{
42 snapshot: programToSnapshot(program, oldProgram, testing),
43 program: program,
44 host: host,
45 }
46
47 if testing {
48 incrementalProgram.testingData = &TestingData{}
49 incrementalProgram.testingData.SemanticDiagnosticsPerFile = &incrementalProgram.snapshot.semanticDiagnosticsPerFile
50 if oldProgram != nil {
51 incrementalProgram.testingData.OldProgramSemanticDiagnosticsPerFile = &oldProgram.snapshot.semanticDiagnosticsPerFile
52 } else {
53 incrementalProgram.testingData.OldProgramSemanticDiagnosticsPerFile = &collections.SyncMap[tspath.Path, *DiagnosticsOrBuildInfoDiagnosticsWithFileName]{}
54 }
55 incrementalProgram.testingData.UpdatedSignatureKinds = make(map[tspath.Path]SignatureUpdateKind)
56 }
57 return incrementalProgram
58}
59
60type TestingData struct {
61 SemanticDiagnosticsPerFile *collections.SyncMap[tspath.Path, *DiagnosticsOrBuildInfoDiagnosticsWithFileName]

Callers 3

doBuildMethod · 0.92
createProgramFunction · 0.92

Calls 2

programToSnapshotFunction · 0.85
makeFunction · 0.50

Tested by

no test coverage detected