Skip to content

Commit 96696c8

Browse files
committed
[Diag-Experimental-Formatting] Add a formatting test for Swift diags emitted in clang virtual files
1 parent f00953c commit 96696c8

File tree

4 files changed

+34
-1
lines changed

4 files changed

+34
-1
lines changed

lib/Frontend/PrintingDiagnosticConsumer.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ namespace {
697697
void printLineEllipsis(raw_ostream &Out) {
698698
Out.changeColor(ColoredStream::Colors::CYAN, true);
699699
Out << llvm::formatv("{0}...\n",
700-
llvm::fmt_repeat(" ", getLineNumberIndent()));
700+
llvm::fmt_repeat(" ", getPreferredLineNumberIndent()));
701701
Out.resetColor();
702702
}
703703

test/diagnostics/Inputs/RenamedObjc.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
@import Foundation;
2+
3+
#define SWIFT_NAME(X) __attribute__((swift_name(#X)))
4+
5+
#pragma clang assume_nonnull begin
6+
@interface SwiftNameTest : NSObject
7+
+ (instancetype)g:(id)x outParam:(int *)foo SWIFT_NAME(init(g:));
8+
@end
9+
#pragma clang assume_nonnull end

test/diagnostics/Inputs/module.map

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
module RenamedObjc {
2+
header "RenamedObjc.h"
3+
export *
4+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// RUN: %empty-directory(%t.mcp)
2+
// RUN: not %target-swift-frontend(mock-sdk: %clang-importer-sdk) -enable-experimental-diagnostic-formatting -I %S/Inputs/ -typecheck %s -module-cache-path %t.mcp 2>&1 | %FileCheck %s
3+
4+
// REQUIRES: objc_interop
5+
6+
import RenamedObjc
7+
8+
let foo = SwiftNameTest(g: "")
9+
10+
// CHECK: SOURCE_DIR{{[/\]+}}test{{[/\]+}}diagnostics{{[/\]+}}Inputs{{[/\]+}}RenamedObjc.h:7:1
11+
// CHECK: 7 | + (instancetype)g:(id)x outParam:(int *)foo SWIFT_NAME(init(g:));
12+
// CHECK: | ^ warning: too few parameters in swift_name attribute (expected 2; got 1)
13+
// CHECK: | ^ note: please report this issue to the owners of 'RenamedObjc'
14+
15+
16+
// CHECK: SOURCE_DIR{{[/\]+}}test{{[/\]+}}diagnostics{{[/\]+}}pretty-printed-diags-in-clang-buffer.swift:8:28
17+
// CHECK: 7 |
18+
// CHECK: 8 | let foo = SwiftNameTest(g: "")
19+
// CHECK: | ~~
20+
// CHECK: | ^ error: argument passed to call that takes no arguments

0 commit comments

Comments
 (0)