|
1 | | -import { ptypes, SourceLocation, TypeResolver } from '@algorandfoundation/puya-ts' |
| 1 | +import { LoggingContext, ptypes, SourceLocation, TypeResolver } from '@algorandfoundation/puya-ts' |
2 | 2 | import path from 'path' |
3 | 3 | import ts from 'typescript' |
4 | 4 | import type { TypeInfo } from '../encoders' |
@@ -32,25 +32,27 @@ type VisitorHelper = { |
32 | 32 |
|
33 | 33 | export class SourceFileVisitor { |
34 | 34 | private helper: VisitorHelper |
| 35 | + |
35 | 36 | constructor( |
36 | 37 | private context: ts.TransformationContext, |
37 | 38 | private sourceFile: ts.SourceFile, |
38 | 39 | program: ts.Program, |
39 | 40 | private config: TransformerConfig, |
40 | 41 | ) { |
41 | 42 | const typeChecker = program.getTypeChecker() |
| 43 | + const loggingContext = LoggingContext.create() |
42 | 44 | const typeResolver = new TypeResolver(typeChecker, program.getCurrentDirectory()) |
43 | 45 | this.helper = { |
44 | 46 | additionalStatements: [], |
45 | 47 | resolveType(node: ts.Node): ptypes.PType { |
46 | 48 | try { |
47 | | - return typeResolver.resolve(node, this.sourceLocation(node)) |
| 49 | + return loggingContext.run(() => typeResolver.resolve(node, this.sourceLocation(node))) |
48 | 50 | } catch { |
49 | 51 | return ptypes.anyPType |
50 | 52 | } |
51 | 53 | }, |
52 | 54 | resolveTypeParameters(node: ts.CallExpression) { |
53 | | - return typeResolver.resolveTypeParameters(node, this.sourceLocation(node)) |
| 55 | + return loggingContext.run(() => typeResolver.resolveTypeParameters(node, this.sourceLocation(node))) |
54 | 56 | }, |
55 | 57 | tryGetSymbol(node: ts.Node): ts.Symbol | undefined { |
56 | 58 | const s = typeChecker.getSymbolAtLocation(node) |
|
0 commit comments