Skip to content

Commit 084e5eb

Browse files
Fix missing TS2385 error for constructor overload visibility disagreement (#2706)
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: andrewbranch <3277153+andrewbranch@users.noreply.github.com>
1 parent 8214cab commit 084e5eb

3 files changed

Lines changed: 11 additions & 37 deletions

File tree

internal/checker/checker.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3428,7 +3428,7 @@ func (c *Checker) checkFunctionOrConstructorSymbol(symbol *ast.Symbol) {
34283428
// to a non-ambient function in an implementation file.
34293429
c.error(ast.GetNameOfDeclaration(overload), diagnostics.Overload_signatures_must_all_be_ambient_or_non_ambient)
34303430
case deviation&(ast.ModifierFlagsPrivate|ast.ModifierFlagsProtected) != 0:
3431-
c.error(ast.GetNameOfDeclaration(overload), diagnostics.Overload_signatures_must_all_be_public_private_or_protected)
3431+
c.error(core.OrElse(ast.GetNameOfDeclaration(overload), overload), diagnostics.Overload_signatures_must_all_be_public_private_or_protected)
34323432
case deviation&ast.ModifierFlagsAbstract != 0:
34333433
c.error(ast.GetNameOfDeclaration(overload), diagnostics.Overload_signatures_must_all_be_abstract_or_non_abstract)
34343434
}

testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.errors.txt

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
error TS2385: Overload signatures must all be public, private or protected.
1+
classConstructorOverloadsAccessibility.ts(2,2): error TS2385: Overload signatures must all be public, private or protected.
2+
classConstructorOverloadsAccessibility.ts(3,2): error TS2385: Overload signatures must all be public, private or protected.
3+
classConstructorOverloadsAccessibility.ts(11,2): error TS2385: Overload signatures must all be public, private or protected.
24

35

4-
!!! error TS2385: Overload signatures must all be public, private or protected.
5-
==== classConstructorOverloadsAccessibility.ts (0 errors) ====
6+
==== classConstructorOverloadsAccessibility.ts (3 errors) ====
67
class A {
78
public constructor(a: boolean) // error
9+
~~~~~~~~~~~~~~~~~~
10+
!!! error TS2385: Overload signatures must all be public, private or protected.
811
protected constructor(a: number) // error
12+
~~~~~~~~~~~~~~~~~~~~~
13+
!!! error TS2385: Overload signatures must all be public, private or protected.
914
private constructor(a: string)
1015
private constructor() {
1116

@@ -14,6 +19,8 @@ error TS2385: Overload signatures must all be public, private or protected.
1419

1520
class B {
1621
protected constructor(a: number) // error
22+
~~~~~~~~~~~~~~~~~~~~~
23+
!!! error TS2385: Overload signatures must all be public, private or protected.
1724
constructor(a: string)
1825
constructor() {
1926

testdata/baselines/reference/submodule/conformance/classConstructorOverloadsAccessibility.errors.txt.diff

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

0 commit comments

Comments
 (0)