提交 980eb3e5 编写于 作者: M Matt Bierner

Strict null work in debug

上级 ec0a503c
......@@ -244,7 +244,7 @@ export interface IThread extends ITreeElement {
/**
* Information about the exception if an 'exception' stopped event raised and DA supports the 'exceptionInfo' request, otherwise null.
*/
readonly exceptionInfo: Promise<IExceptionInfo>;
readonly exceptionInfo: Promise<IExceptionInfo | null>;
/**
* Gets the callstack if it has already been received from the debug
......@@ -321,7 +321,7 @@ export interface IBaseBreakpoint extends IEnablement {
readonly hitCondition: string;
readonly logMessage: string;
readonly verified: boolean;
readonly idFromAdapter: number;
readonly idFromAdapter: number | undefined;
}
export interface IBreakpoint extends IBaseBreakpoint {
......@@ -330,7 +330,7 @@ export interface IBreakpoint extends IBaseBreakpoint {
readonly endLineNumber?: number;
readonly column: number;
readonly endColumn?: number;
readonly message: string;
readonly message?: string;
readonly adapterData: any;
}
......@@ -346,7 +346,7 @@ export interface IExceptionBreakpoint extends IEnablement {
export interface IExceptionInfo {
readonly id?: string;
readonly description?: string;
readonly breakMode: string;
readonly breakMode: string | null;
readonly details?: DebugProtocol.ExceptionDetails;
}
......@@ -394,7 +394,7 @@ export interface IDebugModel extends ITreeElement {
onDidChangeBreakpoints: Event<IBreakpointsChangeEvent>;
onDidChangeCallStack: Event<void>;
onDidChangeWatchExpressions: Event<IExpression>;
onDidChangeWatchExpressions: Event<IExpression | undefined>;
}
/**
......
......@@ -95,7 +95,7 @@ export class ExpressionContainer implements IExpressionContainer {
public valueChanged: boolean;
private _value: string;
protected children: Promise<IExpression[]>;
protected children?: Promise<IExpression[]>;
constructor(
protected session: IDebugSession,
......@@ -187,7 +187,7 @@ export class ExpressionContainer implements IExpressionContainer {
set value(value: string) {
this._value = value;
this.valueChanged = ExpressionContainer.allValues.get(this.getId()) &&
this.valueChanged = !!ExpressionContainer.allValues.get(this.getId()) &&
ExpressionContainer.allValues.get(this.getId()) !== Expression.DEFAULT_VALUE && ExpressionContainer.allValues.get(this.getId()) !== value;
ExpressionContainer.allValues.set(this.getId(), value);
}
......@@ -259,7 +259,7 @@ export class Variable extends ExpressionContainer implements IExpression {
namedVariables: number,
indexedVariables: number,
public presentationHint: DebugProtocol.VariablePresentationHint,
public type: string | null = null,
public type: string | undefined = undefined,
public available = true,
startOfVariables = 0
) {
......@@ -308,7 +308,7 @@ export class Scope extends ExpressionContainer implements IScope {
export class StackFrame implements IStackFrame {
private scopes: Promise<Scope[]>;
private scopes: Promise<Scope[]> | null;
constructor(
public thread: IThread,
......@@ -367,7 +367,7 @@ export class StackFrame implements IStackFrame {
}
const scopesContainingRange = scopes.filter(scope => scope.range && Range.containsRange(scope.range, range))
.sort((first, second) => (first.range.endLineNumber - first.range.startLineNumber) - (second.range.endLineNumber - second.range.startLineNumber));
.sort((first, second) => (first.range!.endLineNumber - first.range!.startLineNumber) - (second.range!.endLineNumber - second.range!.startLineNumber));
return scopesContainingRange.length ? scopesContainingRange : scopes;
});
}
......@@ -564,7 +564,7 @@ export class BaseBreakpoint extends Enablement implements IBaseBreakpoint {
return data ? data.verified : true;
}
get idFromAdapter(): number {
get idFromAdapter(): number | undefined {
const data = this.getSessionData();
return data ? data.id : undefined;
}
......@@ -617,7 +617,7 @@ export class Breakpoint extends BaseBreakpoint implements IBreakpoint {
return data && typeof data.column === 'number' && typeof this._column === 'number' ? data.column : this._column;
}
get message(): string {
get message(): string | undefined {
const data = this.getSessionData();
if (!data) {
return undefined;
......@@ -634,12 +634,12 @@ export class Breakpoint extends BaseBreakpoint implements IBreakpoint {
return data && data.source && data.source.adapterData ? data.source.adapterData : this._adapterData;
}
get endLineNumber(): number {
get endLineNumber(): number | undefined {
const data = this.getSessionData();
return data ? data.endLine : undefined;
}
get endColumn(): number {
get endColumn(): number | undefined {
const data = this.getSessionData();
return data ? data.endColumn : undefined;
}
......@@ -743,9 +743,9 @@ export class DebugModel implements IDebugModel {
private toDispose: lifecycle.IDisposable[];
private schedulers = new Map<string, RunOnceScheduler>();
private breakpointsSessionId: string;
private readonly _onDidChangeBreakpoints: Emitter<IBreakpointsChangeEvent>;
private readonly _onDidChangeBreakpoints: Emitter<IBreakpointsChangeEvent | undefined>;
private readonly _onDidChangeCallStack: Emitter<void>;
private readonly _onDidChangeWatchExpressions: Emitter<IExpression>;
private readonly _onDidChangeWatchExpressions: Emitter<IExpression | undefined>;
constructor(
private breakpoints: Breakpoint[],
......@@ -797,7 +797,7 @@ export class DebugModel implements IDebugModel {
return this._onDidChangeCallStack.event;
}
get onDidChangeWatchExpressions(): Event<IExpression> {
get onDidChangeWatchExpressions(): Event<IExpression | undefined> {
return this._onDidChangeWatchExpressions.event;
}
......@@ -830,7 +830,7 @@ export class DebugModel implements IDebugModel {
}, 420));
}
this.schedulers.get(thread.getId()).schedule();
this.schedulers.get(thread.getId())!.schedule();
this._onDidChangeCallStack.fire();
});
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册