diff --git a/src/services/codefixes/fixAddMissingMember.ts b/src/services/codefixes/fixAddMissingMember.ts index 3b9340f4e2b..6c7fa30828d 100644 --- a/src/services/codefixes/fixAddMissingMember.ts +++ b/src/services/codefixes/fixAddMissingMember.ts @@ -674,7 +674,7 @@ function tryGetValueFromType(context: CodeFixContextBase, checker: TypeChecker, } if (type.flags & TypeFlags.EnumLike) { const enumMember = type.symbol.exports ? firstOrUndefinedIterator(type.symbol.exports.values()) : type.symbol; - const name = checker.symbolToExpression(type.symbol.parent ? type.symbol.parent : type.symbol, SymbolFlags.Value, /*enclosingDeclaration*/ undefined, /*flags*/ undefined); + const name = checker.symbolToExpression(type.symbol.parent ? type.symbol.parent : type.symbol, SymbolFlags.Value, /*enclosingDeclaration*/ undefined, /*flags*/ NodeBuilderFlags.UseFullyQualifiedType); return enumMember === undefined || name === undefined ? factory.createNumericLiteral(0) : factory.createPropertyAccessExpression(name, checker.symbolToString(enumMember)); } if (type.flags & TypeFlags.NumberLiteral) { diff --git a/tests/cases/fourslash/codeFixAddMissingProperties29.ts b/tests/cases/fourslash/codeFixAddMissingProperties29.ts new file mode 100644 index 00000000000..964c3363f57 --- /dev/null +++ b/tests/cases/fourslash/codeFixAddMissingProperties29.ts @@ -0,0 +1,27 @@ +/// + +////namespace Foo.Bar { +//// export enum E { +//// E1 = 0, +//// E2 = 1, +//// } +//// export interface Baz { +//// prop1: string; +//// prop2: number; +//// prop3: E.E1; +//// prop4: Foo.Bar.E.E1; +//// } +////} +////[|const foo: Foo.Bar.Baz = {}|] + +verify.codeFix({ + index: 0, + description: ts.Diagnostics.Add_missing_properties.message, + newRangeContent: +`const foo: Foo.Bar.Baz = { + prop1: "", + prop2: 0, + prop3: Foo.Bar.E.E1, + prop4: Foo.Bar.E.E1 +}`, +});