aboutsummaryrefslogtreecommitdiff
path: root/lib/compilers
diff options
context:
space:
mode:
authorMarc Poulhiès <dkm@kataplop.net>2022-11-28 21:37:15 +0100
committerGitHub <noreply@github.com>2022-11-28 21:37:15 +0100
commit2fa2bbb16a7c2eaa857788d85d9a3aec223508f6 (patch)
tree3be376b9ede013198365d325b8d2240d5ad8478b /lib/compilers
parent90e6e4ecfd62962445dbfb232cb877bfc6724602 (diff)
downloadcompiler-explorer-2fa2bbb16a7c2eaa857788d85d9a3aec223508f6.tar.gz
compiler-explorer-2fa2bbb16a7c2eaa857788d85d9a3aec223508f6.zip
refactor: renames the CompilerFilters type (#4346)gh-5117
The type which probably started as a real enum of possible post filtering options now also includes options used for compilers' invocations. The type was already split, but the naming was not reflecting this in the other part of the code. This changes tries to apply a simple renaming to the type only (corresponding variables are left as 'filters'). While doing so, some typing error were discovered around the GccDump feature. A fix for this will follow in a different PR. Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
Diffstat (limited to 'lib/compilers')
-rw-r--r--lib/compilers/assembly.ts4
-rw-r--r--lib/compilers/cc65.ts4
-rw-r--r--lib/compilers/circt.ts4
-rw-r--r--lib/compilers/cppfront.ts4
-rw-r--r--lib/compilers/dotnet.ts4
-rw-r--r--lib/compilers/erlang.ts4
-rw-r--r--lib/compilers/hlsl.ts8
-rw-r--r--lib/compilers/hook.ts4
-rw-r--r--lib/compilers/jakt.ts13
-rw-r--r--lib/compilers/llvm-mos.ts4
-rw-r--r--lib/compilers/mlir.ts4
-rw-r--r--lib/compilers/nvcc.js4
-rw-r--r--lib/compilers/pony.ts6
-rw-r--r--lib/compilers/racket.ts10
-rw-r--r--lib/compilers/rga.ts4
-rw-r--r--lib/compilers/rust.ts4
-rw-r--r--lib/compilers/toit.ts4
-rw-r--r--lib/compilers/z88dk.ts13
-rw-r--r--lib/compilers/zig.ts8
-rw-r--r--lib/compilers/zigcc.ts10
-rw-r--r--lib/compilers/zigcxx.ts10
21 files changed, 82 insertions, 48 deletions
diff --git a/lib/compilers/assembly.ts b/lib/compilers/assembly.ts
index ac8b6508c..1d7d4dbae 100644
--- a/lib/compilers/assembly.ts
+++ b/lib/compilers/assembly.ts
@@ -28,7 +28,7 @@ import path from 'path';
import _ from 'underscore';
import {BuildResult} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {AsmRaw} from '../parsers/asm-raw';
import {fileExists} from '../utils';
@@ -138,7 +138,7 @@ export class AssemblyCompiler extends BaseCompiler {
const outputFilename = this.getExecutableFilename(dirPath);
- const buildFilters: ParseFilters = Object.assign({}, key.filters);
+ const buildFilters: ParseFiltersAndOutputOptions = Object.assign({}, key.filters);
buildFilters.binary = true;
buildFilters.execute = false;
diff --git a/lib/compilers/cc65.ts b/lib/compilers/cc65.ts
index 927ba9dba..bbb5467cb 100644
--- a/lib/compilers/cc65.ts
+++ b/lib/compilers/cc65.ts
@@ -28,7 +28,7 @@ import fs from 'fs-extra';
import _ from 'underscore';
import {CompilationResult} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {CC65AsmParser} from '../parsers/asm-parser-cc65';
import * as utils from '../utils';
@@ -98,7 +98,7 @@ export class Cc65Compiler extends BaseCompiler {
maxSize: number,
intelAsm,
demangle,
- filters: ParseFilters,
+ filters: ParseFiltersAndOutputOptions,
) {
const res = await super.objdump(outputFilename, result, maxSize, intelAsm, demangle, filters);
diff --git a/lib/compilers/circt.ts b/lib/compilers/circt.ts
index 8627edae0..b34fdd450 100644
--- a/lib/compilers/circt.ts
+++ b/lib/compilers/circt.ts
@@ -24,7 +24,7 @@
import path from 'path';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {BaseParser} from './argument-parsers';
@@ -63,7 +63,7 @@ export class CIRCTCompiler extends BaseCompiler {
return BaseParser;
}
- override optionsForFilter(filters: ParseFilters, outputFilename, userOptions?): any[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename, userOptions?): any[] {
return [];
}
}
diff --git a/lib/compilers/cppfront.ts b/lib/compilers/cppfront.ts
index 3ad588807..38d64daaa 100644
--- a/lib/compilers/cppfront.ts
+++ b/lib/compilers/cppfront.ts
@@ -24,7 +24,7 @@
import path from 'path';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {AsmParserCpp} from '../parsers/asm-parser-cpp';
@@ -44,7 +44,7 @@ export class CppFrontCompiler extends BaseCompiler {
return 'cppp';
}
- override optionsForFilter(filters: ParseFilters, outputFilename: any) {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: any) {
return [];
}
diff --git a/lib/compilers/dotnet.ts b/lib/compilers/dotnet.ts
index 054beec96..5887504cb 100644
--- a/lib/compilers/dotnet.ts
+++ b/lib/compilers/dotnet.ts
@@ -37,7 +37,7 @@ import {
import {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces';
import {BaseCompiler} from '../base-compiler';
import {DotNetAsmParser} from '../parsers/asm-parser-dotnet';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
class DotNetCompiler extends BaseCompiler {
private targetFramework: string;
@@ -204,7 +204,7 @@ class DotNetCompiler extends BaseCompiler {
return compilerResult;
}
- override optionsForFilter(filters: ParseFilters) {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions) {
if (filters.binary) {
this.compileToBinary = true;
}
diff --git a/lib/compilers/erlang.ts b/lib/compilers/erlang.ts
index 43872396e..e87c2aa4b 100644
--- a/lib/compilers/erlang.ts
+++ b/lib/compilers/erlang.ts
@@ -24,7 +24,7 @@
import path from 'path';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {ErlangParser} from './argument-parsers';
@@ -34,7 +34,7 @@ export class ErlangCompiler extends BaseCompiler {
return 'erlang';
}
- override optionsForFilter(filters: ParseFilters, outputFilename: string): string[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string): string[] {
return [
'-noshell',
'-eval',
diff --git a/lib/compilers/hlsl.ts b/lib/compilers/hlsl.ts
index 2925a0154..91f5b0a5e 100644
--- a/lib/compilers/hlsl.ts
+++ b/lib/compilers/hlsl.ts
@@ -24,7 +24,7 @@
import path from 'path';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
export class HLSLCompiler extends BaseCompiler {
@@ -39,7 +39,11 @@ export class HLSLCompiler extends BaseCompiler {
}
/* eslint-disable no-unused-vars */
- override optionsForFilter(filters: ParseFilters, outputFilename: string, userOptions?: string[]): string[] {
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions?: string[],
+ ): string[] {
return [
'-Zi', // Embed debug information to get DXIL line associations
'-Qembed_debug', // Silences the warning associated with embedded debug information
diff --git a/lib/compilers/hook.ts b/lib/compilers/hook.ts
index 55489c1b1..c30c1a981 100644
--- a/lib/compilers/hook.ts
+++ b/lib/compilers/hook.ts
@@ -25,7 +25,7 @@
import path from 'path';
import {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
export class HookCompiler extends BaseCompiler {
@@ -33,7 +33,7 @@ export class HookCompiler extends BaseCompiler {
return 'hook';
}
- override optionsForFilter(filters: ParseFilters): string[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions): string[] {
return ['--dump'];
}
diff --git a/lib/compilers/jakt.ts b/lib/compilers/jakt.ts
index 0cac7c023..e9948fb88 100644
--- a/lib/compilers/jakt.ts
+++ b/lib/compilers/jakt.ts
@@ -25,7 +25,7 @@
import path from 'path';
import {ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
export class JaktCompiler extends BaseCompiler {
@@ -43,13 +43,20 @@ export class JaktCompiler extends BaseCompiler {
return 'cppp';
}
- override async objdump(outputFilename, result: any, maxSize: number, intelAsm, demangle, filters: ParseFilters) {
+ override async objdump(
+ outputFilename,
+ result: any,
+ maxSize: number,
+ intelAsm,
+ demangle,
+ filters: ParseFiltersAndOutputOptions,
+ ) {
const objdumpResult = await super.objdump(outputFilename, result, maxSize, intelAsm, demangle, filters);
objdumpResult.languageId = 'asm';
return objdumpResult;
}
- override optionsForFilter(filters: ParseFilters, outputFilename: any) {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: any) {
return ['--binary-dir', path.dirname(outputFilename)];
}
diff --git a/lib/compilers/llvm-mos.ts b/lib/compilers/llvm-mos.ts
index 668686a3d..b5eb03686 100644
--- a/lib/compilers/llvm-mos.ts
+++ b/lib/compilers/llvm-mos.ts
@@ -28,7 +28,7 @@ import fs from 'fs-extra';
import _ from 'underscore';
import {CompilationResult} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import * as utils from '../utils';
import {ClangCompiler} from './clang';
@@ -62,7 +62,7 @@ export class LLVMMOSCompiler extends ClangCompiler {
maxSize: number,
intelAsm,
demangle,
- filters: ParseFilters,
+ filters: ParseFiltersAndOutputOptions,
) {
if (!outputFilename.endsWith('.elf') && (await utils.fileExists(outputFilename + '.elf'))) {
outputFilename = outputFilename + '.elf';
diff --git a/lib/compilers/mlir.ts b/lib/compilers/mlir.ts
index 744bb2c13..8332a1ace 100644
--- a/lib/compilers/mlir.ts
+++ b/lib/compilers/mlir.ts
@@ -24,7 +24,7 @@
import path from 'path';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {BaseParser} from './argument-parsers';
@@ -67,7 +67,7 @@ export class MLIRCompiler extends BaseCompiler {
return BaseParser;
}
- override optionsForFilter(filters: ParseFilters, outputFilename, userOptions?): any[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename, userOptions?): any[] {
return [];
}
}
diff --git a/lib/compilers/nvcc.js b/lib/compilers/nvcc.js
index 3a99e9c2f..ef527e5ce 100644
--- a/lib/compilers/nvcc.js
+++ b/lib/compilers/nvcc.js
@@ -51,7 +51,7 @@ export class NvccCompiler extends BaseCompiler {
/**
*
- * @param {import('../../types/features/filters.interfaces').ParseFilters} filters
+ * @param {import('../../types/features/filters.interfaces').ParseFiltersAndOutputOptions} filters
* @param {string} outputFilename
* @param {string[]?} userOptions
* @returns {string[]}
@@ -107,7 +107,7 @@ export class NvccCompiler extends BaseCompiler {
*
* @param {*} result
* @param {string} outputFilename
- * @param {import('../../types/features/filters.interfaces').ParseFilters} filters
+ * @param {import('../../types/features/filters.interfaces').ParseFiltersAndOutputOptions} filters
*/
async postProcess(result, outputFilename, filters) {
const maxSize = this.env.ceProps('max-asm-size', 64 * 1024 * 1024);
diff --git a/lib/compilers/pony.ts b/lib/compilers/pony.ts
index 004f41cc7..5435b1f03 100644
--- a/lib/compilers/pony.ts
+++ b/lib/compilers/pony.ts
@@ -27,7 +27,7 @@ import path from 'path';
import _ from 'underscore';
import {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
export class PonyCompiler extends BaseCompiler {
@@ -42,7 +42,7 @@ export class PonyCompiler extends BaseCompiler {
this.compiler.irArg = ['--pass', 'ir'];
} */
- override optionsForFilter(filters: ParseFilters, outputFilename: any, userOptions?: any): string[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: any, userOptions?: any): string[] {
let options = ['-d', '-b', path.parse(outputFilename).name];
if (!filters.binary) {
@@ -61,7 +61,7 @@ export class PonyCompiler extends BaseCompiler {
return source;
}
- override async generateIR(inputFilename: string, options: string[], filters: ParseFilters) {
+ override async generateIR(inputFilename: string, options: string[], filters: ParseFiltersAndOutputOptions) {
const newOptions = _.filter(options, option => !['--pass', 'asm'].includes(option)).concat(this.compiler.irArg);
const execOptions = this.getDefaultExecOptions();
diff --git a/lib/compilers/racket.ts b/lib/compilers/racket.ts
index 68bbec757..f77ba783a 100644
--- a/lib/compilers/racket.ts
+++ b/lib/compilers/racket.ts
@@ -25,7 +25,7 @@
import path from 'path';
import {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {logger} from '../logger';
@@ -45,7 +45,11 @@ export class RacketCompiler extends BaseCompiler {
this.raco = this.compilerProps<string>(`compiler.${this.compiler.id}.raco`);
}
- override optionsForFilter(filters: ParseFilters, outputFilename: string, userOptions?: string[]): string[] {
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions?: string[],
+ ): string[] {
// We currently always compile to bytecode first and then decompile.
// Forcing `binary` on like this ensures `objdump` will be called for
// the decompilation phase.
@@ -93,7 +97,7 @@ export class RacketCompiler extends BaseCompiler {
maxSize: number,
intelAsm: any,
demangle: any,
- filters: ParseFilters,
+ filters: ParseFiltersAndOutputOptions,
): Promise<any> {
// Decompile to assembly via `raco decompile` with `disassemble` package
const execOptions: ExecutionOptions = {
diff --git a/lib/compilers/rga.ts b/lib/compilers/rga.ts
index 050e7499c..71d62a252 100644
--- a/lib/compilers/rga.ts
+++ b/lib/compilers/rga.ts
@@ -27,7 +27,7 @@ import path from 'path';
import {readdir, readFile, rename, writeFile} from 'fs-extra';
import {CompilationResult, ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import * as exec from '../exec';
import {logger} from '../logger';
@@ -54,7 +54,7 @@ export class RGACompiler extends BaseCompiler {
logger.debug(`RGA compiler ${this.compiler.id} configured to use DXC at ${this.dxcPath}`);
}
- override optionsForFilter(filters: ParseFilters, outputFilename: any, userOptions?: any): any[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: any, userOptions?: any): any[] {
return [outputFilename];
}
diff --git a/lib/compilers/rust.ts b/lib/compilers/rust.ts
index 28345e335..b0cb6484c 100644
--- a/lib/compilers/rust.ts
+++ b/lib/compilers/rust.ts
@@ -27,7 +27,7 @@ import path from 'path';
import _ from 'underscore';
import {BasicExecutionResult, UnprocessedExecResult} from '../../types/execution/execution.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {BuildEnvDownloadInfo} from '../buildenvsetup/buildenv.interfaces';
import {parseRustOutput} from '../utils';
@@ -149,7 +149,7 @@ export class RustCompiler extends BaseCompiler {
}
// Override the IR file name method for rustc because the output file is different from clang.
- override getIrOutputFilename(inputFilename: string, filters: ParseFilters): string {
+ override getIrOutputFilename(inputFilename: string, filters: ParseFiltersAndOutputOptions): string {
const outputFilename = this.getOutputFilename(path.dirname(inputFilename), this.outputFilebase);
// As per #4054, if we are asked for binary mode, the output will be in the .s file, no .ll will be emited
if (!filters.binary) {
diff --git a/lib/compilers/toit.ts b/lib/compilers/toit.ts
index 2318f7a61..84b1f2314 100644
--- a/lib/compilers/toit.ts
+++ b/lib/compilers/toit.ts
@@ -24,7 +24,7 @@
import _ from 'underscore';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {ToitParser} from './argument-parsers';
@@ -43,7 +43,7 @@ export class ToitCompiler extends BaseCompiler {
return outputFilename + '.cache';
}
- override optionsForFilter(filters: ParseFilters, outputFilename, userOptions?): string[] {
+ override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename, userOptions?): string[] {
if (!filters.binary) return ['execute', outputFilename];
return [outputFilename];
}
diff --git a/lib/compilers/z88dk.ts b/lib/compilers/z88dk.ts
index 1899be0d9..c7b0b7ecf 100644
--- a/lib/compilers/z88dk.ts
+++ b/lib/compilers/z88dk.ts
@@ -27,7 +27,7 @@ import path from 'path';
import fs from 'fs-extra';
import {ExecutionOptions} from '../../types/compilation/compilation.interfaces';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {BaseCompiler} from '../base-compiler';
import {logger} from '../logger';
import {AsmParserZ88dk} from '../parsers/asm-parser-z88dk';
@@ -82,7 +82,7 @@ export class z88dkCompiler extends BaseCompiler {
);
}
- protected override optionsForFilter(filters: ParseFilters, outputFilename: string): string[] {
+ protected override optionsForFilter(filters: ParseFiltersAndOutputOptions, outputFilename: string): string[] {
if (!filters.binary) {
return ['-S'];
} else {
@@ -110,7 +110,14 @@ export class z88dkCompiler extends BaseCompiler {
return `${this.outputFilebase}.sms`;
}
- override async objdump(outputFilename, result: any, maxSize: number, intelAsm, demangle, filters: ParseFilters) {
+ override async objdump(
+ outputFilename,
+ result: any,
+ maxSize: number,
+ intelAsm,
+ demangle,
+ filters: ParseFiltersAndOutputOptions,
+ ) {
outputFilename = this.getObjdumpOutputFilename(outputFilename);
// sometimes (with +z80 for example) the .bin file is written and the .s file is empty
diff --git a/lib/compilers/zig.ts b/lib/compilers/zig.ts
index ef6298189..eed8a4bce 100644
--- a/lib/compilers/zig.ts
+++ b/lib/compilers/zig.ts
@@ -27,7 +27,7 @@ import path from 'path';
import Semver from 'semver';
import _ from 'underscore';
-import {ParseFilters} from '../../types/features/filters.interfaces';
+import {ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {SelectedLibraryVersion} from '../../types/libraries/libraries.interfaces';
import {BaseCompiler} from '../base-compiler';
import {asSafeVer} from '../utils';
@@ -104,7 +104,11 @@ export class ZigCompiler extends BaseCompiler {
return source;
}
- override optionsForFilter(filters: ParseFilters, outputFilename: string, userOptions: string[]): string[] {
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions: string[],
+ ): string[] {
let options = [filters.execute ? 'build-exe' : 'build-obj'];
const desiredName = path.basename(outputFilename);
diff --git a/lib/compilers/zigcc.ts b/lib/compilers/zigcc.ts
index 7f35905e0..c50e766d1 100644
--- a/lib/compilers/zigcc.ts
+++ b/lib/compilers/zigcc.ts
@@ -24,7 +24,7 @@
import Semver from 'semver';
-import {CompilerFilters, ParseFilters} from '../../types/features/filters.interfaces';
+import {CompilerOutputOptions, ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {asSafeVer} from '../utils';
import {ClangCompiler} from './clang';
@@ -43,7 +43,7 @@ export class ZigCC extends ClangCompiler {
Semver.lt(asSafeVer(this.compiler.semver), '0.9.0', true);
}
- override preProcess(source: string, filters: CompilerFilters): string {
+ override preProcess(source: string, filters: CompilerOutputOptions): string {
if (this.needsForcedBinary) {
// note: zig versions > 0.6 don't emit asm, only binary works - https://github.com/ziglang/zig/issues/8153
filters.binary = true;
@@ -52,7 +52,11 @@ export class ZigCC extends ClangCompiler {
return super.preProcess(source, filters);
}
- override optionsForFilter(filters: ParseFilters, outputFilename: string, userOptions?: string[]): string[] {
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions?: string[],
+ ): string[] {
if (this.needsForcedBinary) {
// note: zig versions > 0.6 don't emit asm, only binary works - https://github.com/ziglang/zig/issues/8153
filters.binary = true;
diff --git a/lib/compilers/zigcxx.ts b/lib/compilers/zigcxx.ts
index 4225d2503..f608f37c6 100644
--- a/lib/compilers/zigcxx.ts
+++ b/lib/compilers/zigcxx.ts
@@ -24,7 +24,7 @@
import Semver from 'semver';
-import {CompilerFilters, ParseFilters} from '../../types/features/filters.interfaces';
+import {CompilerOutputOptions, ParseFiltersAndOutputOptions} from '../../types/features/filters.interfaces';
import {asSafeVer} from '../utils';
import {ClangCompiler} from './clang';
@@ -43,7 +43,7 @@ export class ZigCXX extends ClangCompiler {
Semver.lt(asSafeVer(this.compiler.semver), '0.9.0', true);
}
- override preProcess(source: string, filters: CompilerFilters): string {
+ override preProcess(source: string, filters: CompilerOutputOptions): string {
if (this.needsForcedBinary) {
// note: zig versions > 0.6 don't emit asm, only binary works - https://github.com/ziglang/zig/issues/8153
filters.binary = true;
@@ -52,7 +52,11 @@ export class ZigCXX extends ClangCompiler {
return super.preProcess(source, filters);
}
- override optionsForFilter(filters: ParseFilters, outputFilename: string, userOptions?: string[]): string[] {
+ override optionsForFilter(
+ filters: ParseFiltersAndOutputOptions,
+ outputFilename: string,
+ userOptions?: string[],
+ ): string[] {
if (this.needsForcedBinary) {
// note: zig versions > 0.6 don't emit asm, only binary works - https://github.com/ziglang/zig/issues/8153
filters.binary = true;