Files
swift-mirror/test/CAS/educational-notes.swift

98 lines
3.9 KiB
Swift
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// RUN: %empty-directory(%t)
// RUN: %target-swift-frontend -scan-dependencies -module-name Test -O \
// RUN: -disable-implicit-string-processing-module-import -disable-implicit-concurrency-module-import -parse-stdlib \
// RUN: %s -o %t/deps.json -swift-version 5 -cache-compile-job -cas-path %t/cas
// RUN: %{python} %S/Inputs/BuildCommandExtractor.py %t/deps.json Test > %t/MyApp.cmd
// RUN: echo "\"-disable-implicit-string-processing-module-import\"" >> %t/MyApp.cmd
// RUN: echo "\"-disable-implicit-concurrency-module-import\"" >> %t/MyApp.cmd
// RUN: echo "\"-parse-stdlib\"" >> %t/MyApp.cmd
// RUN: not %target-swift-frontend -color-diagnostics -diagnostic-style=llvm -print-educational-notes -diagnostic-documentation-path %S/../diagnostics/test-docs/ \
// RUN: -emit-module -emit-module-path %t/test.module @%t/MyApp.cmd %s 2>&1 | %FileCheck %s --match-full-lines --strict-whitespace
// RUN: not %target-swift-frontend -no-color-diagnostics -diagnostic-style=llvm -print-educational-notes -diagnostic-documentation-path %S/../diagnostics/test-docs/ \
// RUN: -emit-module -emit-module-path %t/test.module @%t/MyApp.cmd %s 2>&1 | %FileCheck %s --match-full-lines --strict-whitespace --check-prefix=NO-COLOR
// A diagnostic with no educational notes
let x = 1 +
// CHECK:{{.*}}[0merror: expected expression after operator
// CHECK-NOT: {{-+$}}
// NO-COLOR:{{.*}}error: expected expression after operator
// NO-COLOR-NOT: {{-+$}}
// A diagnostic with an educational note using supported markdown features
typealias Crap = () -> ()
extension Crap {}
// CHECK:{{.*}}[0merror: non-nominal type 'Crap' (aka '() -> ()') cannot be extended
// CHECK-NEXT:extension Crap {}
// CHECK-NEXT:^ ~~~~
// CHECK-NEXT:Nominal Types
// CHECK-NEXT:--------------
// CHECK-EMPTY:
// CHECK-NEXT:Nominal types documentation content. This is a paragraph
// CHECK-EMPTY:
// CHECK-NEXT: blockquote
// CHECK-NEXT: {{$}}
// CHECK-NEXT: - item 1
// CHECK-NEXT: - item 2
// CHECK-NEXT: - item 3
// CHECK-NEXT: {{$}}
// CHECK-NEXT: let x = 42
// CHECK-NEXT: if x > 0 {
// CHECK-NEXT: print("positive")
// CHECK-NEXT: }
// CHECK-NEXT: {{$}}
// CHECK-NEXT:Type 'MyClass'
// CHECK-EMPTY:
// CHECK-NEXT:[Swift](swift.org)
// CHECK-EMPTY:
// CHECK-NEXT:bold italics
// CHECK-NEXT:--------------
// CHECK-NEXT:Header 1
// CHECK-NEXT:Header 3
// NO-COLOR:{{.*}}error: non-nominal type 'Crap' (aka '() -> ()') cannot be extended
// NO-COLOR-NEXT:extension Crap {}
// NO-COLOR-NEXT:^ ~~~~
// NO-COLOR-NEXT:Nominal Types
// NO-COLOR-NEXT:--------------
// NO-COLOR-EMPTY:
// NO-COLOR-NEXT:Nominal types documentation content. This is a paragraph
// NO-COLOR-EMPTY:
// NO-COLOR-NEXT: blockquote
// NO-COLOR-NEXT: {{$}}
// NO-COLOR-NEXT: - item 1
// NO-COLOR-NEXT: - item 2
// NO-COLOR-NEXT: - item 3
// NO-COLOR-NEXT: {{$}}
// NO-COLOR-NEXT: let x = 42
// NO-COLOR-NEXT: if x > 0 {
// NO-COLOR-NEXT: print("positive")
// NO-COLOR-NEXT: }
// NO-COLOR-NEXT: {{$}}
// NO-COLOR-NEXT:Type 'MyClass'
// NO-COLOR-EMPTY:
// NO-COLOR-NEXT:[Swift](swift.org)
// NO-COLOR-EMPTY:
// NO-COLOR-NEXT:bold italics
// NO-COLOR-NEXT:--------------
// NO-COLOR-NEXT:Header 1
// NO-COLOR-NEXT:Header 3
// CHECK-DESCRIPTIVE: educational-notes.swift
// CHECK-DESCRIPTIVE-NEXT: | // A diagnostic with an educational note
// CHECK-DESCRIPTIVE-NEXT: | extension Crap {}
// CHECK-DESCRIPTIVE-NEXT: | ^ error: expected expression after operator
// CHECK-DESCRIPTIVE-NEXT: |
// CHECK-DESCRIPTIVE: educational-notes.swift
// CHECK-DESCRIPTIVE-NEXT: | // A diagnostic with an educational note
// CHECK-DESCRIPTIVE-NEXT: | extension Crap {}
// CHECK-DESCRIPTIVE-NEXT: | ~~~~
// CHECK-DESCRIPTIVE-NEXT: | ^ error: non-nominal type 'Crap' (aka '() -> ()') cannot be extended
// CHECK-DESCRIPTIVE-NEXT: |
// CHECK-DESCRIPTIVE-NEXT: Nominal Types
// CHECK-DESCRIPTIVE-NEXT: -------------