Skip to content

Commit d348adf

Browse files
committed
Fixed deno-exclusive errors
1 parent 0cc9a2f commit d348adf

File tree

19 files changed

+809
-4895
lines changed

19 files changed

+809
-4895
lines changed

deno.lock

Lines changed: 600 additions & 784 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/app/deno.lock

Lines changed: 0 additions & 2264 deletions
This file was deleted.

packages/cli/deno.lock

Lines changed: 0 additions & 1762 deletions
This file was deleted.

packages/cli/src/languagePlugins/c/dependencyFormatting/index.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ export class CDependencyFormatter {
4242
if (st === "macro_constant") {
4343
return C_VARIABLE_TYPE as CDepSymbolType;
4444
}
45+
throw new Error(`Unknown symbol type: ${st}`);
4546
}
4647

4748
/**
@@ -133,6 +134,9 @@ export class CDependencyFormatter {
133134
filepath,
134135
);
135136
const includes = this.includeResolver.getInclusions().get(filepath);
137+
if (!includes) {
138+
throw new Error(`File not found: ${filepath}`);
139+
}
136140
const stdincludes = Array.from(includes.standard.keys());
137141
const invokedDependencies = this.#formatDependencies(fileDependencies);
138142
const stdDependencies = this.#formatStandardIncludes(stdincludes);

packages/cli/src/languagePlugins/c/headerResolver/index.test.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ describe("CHeaderResolver", () => {
2626
test("resolves structs", () => {
2727
const burger = exportedSymbols.find((symbol) => symbol.name === "Burger");
2828
expect(burger).toBeDefined();
29+
if (!burger) {
30+
throw new Error("burger is undefined");
31+
}
2932
expect(burger.type).toBe("struct");
3033
expect(burger.specifiers).toEqual([]);
3134
expect(burger.qualifiers).toEqual([]);
@@ -37,6 +40,9 @@ describe("CHeaderResolver", () => {
3740
test("resolves unions", () => {
3841
const sauce = exportedSymbols.find((symbol) => symbol.name === "Sauce");
3942
expect(sauce).toBeDefined();
43+
if (!sauce) {
44+
throw new Error("sauce is undefined");
45+
}
4046
expect(sauce.type).toBe("union");
4147
expect(sauce.specifiers).toEqual([]);
4248
expect(sauce.qualifiers).toEqual([]);
@@ -50,6 +56,9 @@ describe("CHeaderResolver", () => {
5056
(symbol) => symbol.name === "Condiment",
5157
);
5258
expect(condiment).toBeDefined();
59+
if (!condiment) {
60+
throw new Error("condiment is undefined");
61+
}
5362
expect(condiment.type).toBe("enum");
5463
expect(condiment.specifiers).toEqual([]);
5564
expect(condiment.qualifiers).toEqual([]);
@@ -61,10 +70,16 @@ describe("CHeaderResolver", () => {
6170
(symbol) => symbol.name === "ClassicSauces",
6271
);
6372
expect(classicsauces).toBeDefined();
73+
if (!classicsauces) {
74+
throw new Error("classicsauces is undefined");
75+
}
6476
expect(classicsauces.type).toBe("enum");
6577

6678
const drink_t = exportedSymbols.find((symbol) => symbol.name === "Drink_t");
6779
expect(drink_t).toBeDefined();
80+
if (!drink_t) {
81+
throw new Error("drink_t is undefined");
82+
}
6883
expect(drink_t.type).toBe("enum");
6984
expect(drink_t.specifiers).toEqual([]);
7085
expect(drink_t.qualifiers).toEqual([]);
@@ -78,6 +93,9 @@ describe("CHeaderResolver", () => {
7893
(symbol) => symbol.name === "classicBurger",
7994
);
8095
expect(classicburger).toBeDefined();
96+
if (!classicburger) {
97+
throw new Error("classicburger is undefined");
98+
}
8199
expect(classicburger.type).toBe("variable");
82100
expect(classicburger.specifiers).toEqual([]);
83101
expect(classicburger.qualifiers).toEqual(["const"]);
@@ -89,6 +107,9 @@ describe("CHeaderResolver", () => {
89107
(symbol) => symbol.name === "burger_count",
90108
);
91109
expect(burger_count).toBeDefined();
110+
if (!burger_count) {
111+
throw new Error("burger_count is undefined");
112+
}
92113
expect(burger_count.type).toBe("variable");
93114
expect(burger_count.specifiers).toEqual(["static"]);
94115
expect(burger_count.qualifiers).toEqual([]);
@@ -102,6 +123,9 @@ describe("CHeaderResolver", () => {
102123
(symbol) => symbol.name === "BURGERS_H",
103124
);
104125
expect(burgers_h).toBeDefined();
126+
if (!burgers_h) {
127+
throw new Error("burgers_h is undefined");
128+
}
105129
expect(burgers_h.type).toBe("macro_constant");
106130
expect(burgers_h.specifiers).toEqual([]);
107131
expect(burgers_h.qualifiers).toEqual([]);
@@ -113,6 +137,9 @@ describe("CHeaderResolver", () => {
113137
(symbol) => symbol.name === "MAX_BURGERS",
114138
);
115139
expect(max_burgers).toBeDefined();
140+
if (!max_burgers) {
141+
throw new Error("max_burgers is undefined");
142+
}
116143
expect(max_burgers.type).toBe("macro_constant");
117144
expect(max_burgers.specifiers).toEqual([]);
118145
expect(max_burgers.qualifiers).toEqual([]);
@@ -136,6 +163,9 @@ describe("CHeaderResolver", () => {
136163
test("resolves macro functions", () => {
137164
const max_macro = exportedSymbols.find((symbol) => symbol.name === "MAX");
138165
expect(max_macro).toBeDefined();
166+
if (!max_macro) {
167+
throw new Error("max_macro is undefined");
168+
}
139169
expect(max_macro.type).toBe("macro_function");
140170
expect(max_macro.specifiers).toEqual([]);
141171
expect(max_macro.qualifiers).toEqual([]);
@@ -147,6 +177,9 @@ describe("CHeaderResolver", () => {
147177
test("resolves typedefs", () => {
148178
const fries = exportedSymbols.find((symbol) => symbol.name === "Fries");
149179
expect(fries).toBeDefined();
180+
if (!fries) {
181+
throw new Error("fries is undefined");
182+
}
150183
expect(fries.type).toBe("typedef");
151184
expect(fries.specifiers).toEqual([]);
152185
expect(fries.qualifiers).toEqual([]);
@@ -156,6 +189,9 @@ describe("CHeaderResolver", () => {
156189

157190
const drink = exportedSymbols.find((symbol) => symbol.name === "Drink");
158191
expect(drink).toBeDefined();
192+
if (!drink) {
193+
throw new Error("drink is undefined");
194+
}
159195
expect(drink.type).toBe("typedef");
160196
expect(drink.specifiers).toEqual([]);
161197
expect(drink.qualifiers).toEqual([]);
@@ -170,6 +206,9 @@ describe("CHeaderResolver", () => {
170206

171207
const sprite = ccexportedSymbols.find((s) => s.name === "Sprite");
172208
expect(sprite).toBeDefined();
209+
if (!sprite) {
210+
throw new Error("sprite is undefined");
211+
}
173212
expect(sprite.type).toBe("struct");
174213
expect(sprite.specifiers).toEqual([]);
175214
expect(sprite.qualifiers).toEqual([]);
@@ -181,6 +220,9 @@ describe("CHeaderResolver", () => {
181220
(s) => s.name === "PlaceholderFunction",
182221
);
183222
expect(placeholderfunction).toBeDefined();
223+
if (!placeholderfunction) {
224+
throw new Error("placeholderfunction is undefined");
225+
}
184226
expect(placeholderfunction.type).toBe("function_signature");
185227
expect(placeholderfunction.specifiers).toEqual([]);
186228
expect(placeholderfunction.qualifiers).toEqual([]);
@@ -192,6 +234,9 @@ describe("CHeaderResolver", () => {
192234
(s) => s.name === "gMovementTypeFuncs_WanderAround",
193235
);
194236
expect(gmtfwa).toBeDefined();
237+
if (!gmtfwa) {
238+
throw new Error("gmtfwa is undefined");
239+
}
195240
expect(gmtfwa.type).toBe("variable");
196241
expect(gmtfwa.specifiers).toEqual([]);
197242
expect(gmtfwa.qualifiers).toEqual([]);

packages/cli/src/languagePlugins/c/headerResolver/index.ts

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,17 @@ export class CHeaderResolver {
2727
if (capture.name !== "decl" && capture.name !== "function_definition") {
2828
let idNode: Parser.SyntaxNode;
2929
if (capture.name !== "typedef") {
30-
idNode = capture.node.childForFieldName("name");
30+
if (!capture.node.childForFieldName("name")) {
31+
throw new Error(`Couldn't find name for ${capture.node.text}`);
32+
}
33+
idNode = capture.node.childForFieldName("name") as Parser.SyntaxNode;
3134
} else {
32-
idNode = capture.node.childForFieldName("declarator");
35+
if (!capture.node.childForFieldName("declarator")) {
36+
throw new Error(`Couldn't find name for ${capture.node.text}`);
37+
}
38+
idNode = capture.node.childForFieldName(
39+
"declarator",
40+
) as Parser.SyntaxNode;
3341
}
3442
if (!idNode) {
3543
continue;
@@ -56,12 +64,24 @@ export class CHeaderResolver {
5664
// (e.g. in pointers or arrays)
5765
while (
5866
!currentNode.childForFieldName("declarator") ||
59-
currentNode.childForFieldName("declarator").type !== "identifier"
67+
currentNode.childForFieldName("declarator")?.type !== "identifier"
6068
) {
6169
if (!currentNode.childForFieldName("declarator")) {
70+
if (!currentNode.firstNamedChild) {
71+
throw new Error(
72+
`Could not find a named child for ${currentNode.text}`,
73+
);
74+
}
6275
currentNode = currentNode.firstNamedChild;
6376
} else {
64-
currentNode = currentNode.childForFieldName("declarator");
77+
if (!currentNode.childForFieldName("declarator")) {
78+
throw new Error(
79+
`Could not find a declarator for ${currentNode.text}`,
80+
);
81+
}
82+
currentNode = currentNode.childForFieldName(
83+
"declarator",
84+
) as Parser.SyntaxNode;
6585
}
6686
}
6787
const type = capture.name === "function_definition"
@@ -70,6 +90,11 @@ export class CHeaderResolver {
7090
? "function_signature"
7191
: "variable";
7292
const idNode = currentNode.childForFieldName("declarator");
93+
if (!idNode) {
94+
throw new Error(
95+
`Couldn't find identifier node for symbol :\n${capture.node.text}`,
96+
);
97+
}
7398
exportedSymbols.push({
7499
name: idNode.text,
75100
type: type as SymbolType,

packages/cli/src/languagePlugins/c/headerResolver/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Parser from "tree-sitter";
1+
import type Parser from "tree-sitter";
22

33
// Constants representing different types of symbols in C
44
export const C_STRUCT_TYPE = "struct";

packages/cli/src/languagePlugins/c/includeResolver/index.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,11 @@ import path from "node:path";
88
export class CIncludeResolver {
99
symbolRegistry: Map<string, CFile>;
1010
files: Map<string, { path: string; rootNode: Parser.SyntaxNode }>;
11-
#inclusions: Map<string, Inclusions>;
11+
#inclusions?: Map<string, Inclusions>;
1212

1313
constructor(symbolRegistry: CSymbolRegistry) {
1414
this.symbolRegistry = symbolRegistry.getRegistry();
1515
this.files = symbolRegistry.files;
16-
this.#inclusions = new Map();
1716
}
1817

1918
#getFile(filepath: string, sourcepath: string): CFile | undefined {

packages/cli/src/languagePlugins/c/includeResolver/queries.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Parser from "tree-sitter";
2-
import { cParser } from "../../../helpers/treeSitter/parsers.js";
2+
import { cParser } from "../../../helpers/treeSitter/parsers.ts";
33

44
export const C_INCLUDE_QUERY = new Parser.Query(
55
cParser.getLanguage(),

packages/cli/src/languagePlugins/c/invocationResolver/index.test.ts

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { cFilesFolder, getCFilesMap } from "../testFiles/index.ts";
44
import { CSymbolRegistry } from "../symbolRegistry/index.ts";
55
import { CIncludeResolver } from "../includeResolver/index.ts";
66
import { CInvocationResolver } from "./index.ts";
7+
import type { Symbol } from "../symbolRegistry/types.ts";
78
import path from "node:path";
89

910
describe("CInvocationResolver", () => {
@@ -19,21 +20,21 @@ describe("CInvocationResolver", () => {
1920
const registry = symbolRegistry.getRegistry();
2021

2122
test("resolves invocations for burgers.h", () => {
22-
const symbols = registry.get(burgersh).symbols;
23+
const symbols = registry.get(burgersh)?.symbols;
2324
if (!symbols) {
2425
throw new Error(`Symbol not found for: ${burgersh}`);
2526
}
26-
const sauce = symbols.get("Sauce");
27+
const sauce = symbols.get("Sauce") as Symbol;
2728
const sauceinvocations = invocationResolver.getInvocationsForSymbol(sauce);
2829
expect(sauceinvocations.resolved.size).toBe(1);
2930
expect(sauceinvocations.resolved.get("ClassicSauces")).toBeDefined();
3031

31-
const fries = symbols.get("Fries");
32+
const fries = symbols.get("Fries") as Symbol;
3233
const friesinvocations = invocationResolver.getInvocationsForSymbol(fries);
3334
expect(friesinvocations.resolved.size).toBe(1);
3435
expect(friesinvocations.resolved.get("Sauce")).toBeDefined();
3536

36-
const burger = symbols.get("Burger");
37+
const burger = symbols.get("Burger") as Symbol;
3738
const burgerinvocations = invocationResolver.getInvocationsForSymbol(
3839
burger,
3940
);
@@ -43,11 +44,11 @@ describe("CInvocationResolver", () => {
4344
});
4445

4546
test("resolves invocations for burgers.c", () => {
46-
const symbols = registry.get(burgersc).symbols;
47+
const symbols = registry.get(burgersc)?.symbols;
4748
if (!symbols) {
4849
throw new Error(`Symbol not found for: ${burgersc}`);
4950
}
50-
const create_burger = symbols.get("create_burger");
51+
const create_burger = symbols.get("create_burger") as Symbol;
5152
const create_burger_invocations = invocationResolver
5253
.getInvocationsForSymbol(create_burger);
5354
const create_resolved = Array.from(
@@ -60,7 +61,7 @@ describe("CInvocationResolver", () => {
6061
expect(create_resolved).toContain("Sauce");
6162
expect(create_resolved).toContain("burger_count");
6263

63-
const destroy_burger = symbols.get("destroy_burger");
64+
const destroy_burger = symbols.get("destroy_burger") as Symbol;
6465
const destroy_burger_invocations = invocationResolver
6566
.getInvocationsForSymbol(destroy_burger);
6667
const destroy_resolved = Array.from(
@@ -70,9 +71,12 @@ describe("CInvocationResolver", () => {
7071
expect(destroy_resolved).toContain("destroy_burger");
7172
expect(destroy_resolved).toContain("Burger");
7273

73-
const symbolsc = registry.get(burgersc).symbols;
74+
const symbolsc = registry.get(burgersc)?.symbols;
75+
if (!symbolsc) {
76+
throw new Error(`Symbol not found for: ${burgersc}`);
77+
}
7478

75-
const burgers = symbolsc.get("burgers");
79+
const burgers = symbolsc.get("burgers") as Symbol;
7680
const burgers_invocations = invocationResolver.getInvocationsForSymbol(
7781
burgers,
7882
);
@@ -83,11 +87,11 @@ describe("CInvocationResolver", () => {
8387
});
8488

8589
test("resolves invocations for personnel.c", () => {
86-
const symbols = registry.get(personnelc).symbols;
90+
const symbols = registry.get(personnelc)?.symbols;
8791
if (!symbols) {
8892
throw new Error(`Symbol not found for: ${personnelc}`);
8993
}
90-
const create_employee = symbols.get("create_employee");
94+
const create_employee = symbols.get("create_employee") as Symbol;
9195
const create_employee_invocations = invocationResolver
9296
.getInvocationsForSymbol(create_employee);
9397
const create_resolved = Array.from(
@@ -103,11 +107,11 @@ describe("CInvocationResolver", () => {
103107
});
104108

105109
test("resolves invocations for main.c", () => {
106-
const symbols = registry.get(main).symbols;
110+
const symbols = registry.get(main)?.symbols;
107111
if (!symbols) {
108112
throw new Error(`Symbol not found for: ${main}`);
109113
}
110-
const main_func = symbols.get("main");
114+
const main_func = symbols.get("main") as Symbol;
111115
const main_invocations = invocationResolver.getInvocationsForSymbol(
112116
main_func,
113117
);
@@ -122,11 +126,11 @@ describe("CInvocationResolver", () => {
122126
});
123127

124128
test("Crash Cases", () => {
125-
const symbols = registry.get(crashcasesh).symbols;
129+
const symbols = registry.get(crashcasesh)?.symbols;
126130
if (!symbols) {
127131
throw new Error(`Symbol not found for: ${crashcasesh}`);
128132
}
129-
const crash = symbols.get("CpuFastFill");
133+
const crash = symbols.get("CpuFastFill") as Symbol;
130134
const crash_invocations = invocationResolver.getInvocationsForSymbol(crash);
131135
const crash_resolved = Array.from(crash_invocations.resolved.keys());
132136
expect(crash_resolved.length).toBe(2);

0 commit comments

Comments
 (0)