提交 06c10cdd 编写于 作者: A Alex Ross

Strict init for tasks in extHostTypes.ts

Part of #78168
上级 d9935e0d
...@@ -1626,6 +1626,7 @@ export class ProcessExecution implements vscode.ProcessExecution { ...@@ -1626,6 +1626,7 @@ export class ProcessExecution implements vscode.ProcessExecution {
if (typeof process !== 'string') { if (typeof process !== 'string') {
throw illegalArgument('process'); throw illegalArgument('process');
} }
this._args = [];
this._process = process; this._process = process;
if (varg1 !== undefined) { if (varg1 !== undefined) {
if (Array.isArray(varg1)) { if (Array.isArray(varg1)) {
...@@ -1635,9 +1636,6 @@ export class ProcessExecution implements vscode.ProcessExecution { ...@@ -1635,9 +1636,6 @@ export class ProcessExecution implements vscode.ProcessExecution {
this._options = varg1; this._options = varg1;
} }
} }
if (this._args === undefined) {
this._args = [];
}
} }
...@@ -1689,9 +1687,9 @@ export class ProcessExecution implements vscode.ProcessExecution { ...@@ -1689,9 +1687,9 @@ export class ProcessExecution implements vscode.ProcessExecution {
@es5ClassCompat @es5ClassCompat
export class ShellExecution implements vscode.ShellExecution { export class ShellExecution implements vscode.ShellExecution {
private _commandLine: string; private _commandLine: string | undefined;
private _command: string | vscode.ShellQuotedString; private _command: string | vscode.ShellQuotedString | undefined;
private _args: (string | vscode.ShellQuotedString)[]; private _args: (string | vscode.ShellQuotedString)[] = [];
private _options: vscode.ShellExecutionOptions | undefined; private _options: vscode.ShellExecutionOptions | undefined;
constructor(commandLine: string, options?: vscode.ShellExecutionOptions); constructor(commandLine: string, options?: vscode.ShellExecutionOptions);
...@@ -1717,7 +1715,7 @@ export class ShellExecution implements vscode.ShellExecution { ...@@ -1717,7 +1715,7 @@ export class ShellExecution implements vscode.ShellExecution {
} }
get commandLine(): string { get commandLine(): string {
return this._commandLine; return this._commandLine ? this._commandLine : '';
} }
set commandLine(value: string) { set commandLine(value: string) {
...@@ -1728,7 +1726,7 @@ export class ShellExecution implements vscode.ShellExecution { ...@@ -1728,7 +1726,7 @@ export class ShellExecution implements vscode.ShellExecution {
} }
get command(): string | vscode.ShellQuotedString { get command(): string | vscode.ShellQuotedString {
return this._command; return this._command ? this._command : '';
} }
set command(value: string | vscode.ShellQuotedString) { set command(value: string | vscode.ShellQuotedString) {
...@@ -1826,23 +1824,23 @@ export class Task implements vscode.Task2 { ...@@ -1826,23 +1824,23 @@ export class Task implements vscode.Task2 {
constructor(definition: vscode.TaskDefinition, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution2, problemMatchers?: string | string[]); constructor(definition: vscode.TaskDefinition, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution2, problemMatchers?: string | string[]);
constructor(definition: vscode.TaskDefinition, scope: vscode.TaskScope.Global | vscode.TaskScope.Workspace | vscode.WorkspaceFolder, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution2, problemMatchers?: string | string[]); constructor(definition: vscode.TaskDefinition, scope: vscode.TaskScope.Global | vscode.TaskScope.Workspace | vscode.WorkspaceFolder, name: string, source: string, execution?: ProcessExecution | ShellExecution | CustomExecution2, problemMatchers?: string | string[]);
constructor(definition: vscode.TaskDefinition, arg2: string | (vscode.TaskScope.Global | vscode.TaskScope.Workspace) | vscode.WorkspaceFolder, arg3: any, arg4?: any, arg5?: any, arg6?: any) { constructor(definition: vscode.TaskDefinition, arg2: string | (vscode.TaskScope.Global | vscode.TaskScope.Workspace) | vscode.WorkspaceFolder, arg3: any, arg4?: any, arg5?: any, arg6?: any) {
this.definition = definition; this._definition = this.definition = definition;
let problemMatchers: string | string[]; let problemMatchers: string | string[];
if (typeof arg2 === 'string') { if (typeof arg2 === 'string') {
this.name = arg2; this._name = this.name = arg2;
this.source = arg3; this._source = this.source = arg3;
this.execution = arg4; this.execution = arg4;
problemMatchers = arg5; problemMatchers = arg5;
} else if (arg2 === TaskScope.Global || arg2 === TaskScope.Workspace) { } else if (arg2 === TaskScope.Global || arg2 === TaskScope.Workspace) {
this.target = arg2; this.target = arg2;
this.name = arg3; this._name = this.name = arg3;
this.source = arg4; this._source = this.source = arg4;
this.execution = arg5; this.execution = arg5;
problemMatchers = arg6; problemMatchers = arg6;
} else { } else {
this.target = arg2; this.target = arg2;
this.name = arg3; this._name = this.name = arg3;
this.source = arg4; this._source = this.source = arg4;
this.execution = arg5; this.execution = arg5;
problemMatchers = arg6; problemMatchers = arg6;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册