Skip to content

[NFC] Change diagnostic text mentioning 'undeclared type'/'unresolved identifier' #31315

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions include/swift/AST/DiagnosticsSema.def
Original file line number Diff line number Diff line change
Expand Up @@ -795,19 +795,19 @@ ERROR(unspaced_unary_operator,none,
"unary operators must not be juxtaposed; parenthesize inner expression",
())

ERROR(use_unresolved_identifier,none,
"use of unresolved %select{identifier|operator}1 %0", (DeclNameRef, bool))
ERROR(use_unresolved_identifier_corrected,none,
"use of unresolved %select{identifier|operator}1 %0; did you mean '%2'?",
ERROR(cannot_find_in_scope,none,
"cannot %select{find|find operator}1 %0 in scope", (DeclNameRef, bool))
ERROR(cannot_find_in_scope_corrected,none,
"cannot %select{find|find operator}1 %0 in scope; did you mean '%2'?",
(DeclNameRef, bool, StringRef))
NOTE(confusable_character,none,
"%select{identifier|operator}0 '%1' contains possibly confused characters; "
"did you mean to use '%2'?",
(bool, StringRef, StringRef))
ERROR(use_undeclared_type,none,
"use of undeclared type %0", (DeclNameRef))
ERROR(use_undeclared_type_did_you_mean,none,
"use of undeclared type %0; did you mean to use '%1'?", (DeclNameRef, StringRef))
ERROR(cannot_find_type_in_scope,none,
"cannot find type %0 in scope", (DeclNameRef))
ERROR(cannot_find_type_in_scope_did_you_mean,none,
"cannot find type %0 in scope; did you mean to use '%1'?", (DeclNameRef, StringRef))
NOTE(note_typo_candidate_implicit_member,none,
"did you mean the implicitly-synthesized %1 '%0'?", (StringRef, StringRef))
NOTE(note_remapped_type,none,
Expand Down Expand Up @@ -3666,9 +3666,9 @@ ERROR(continue_not_in_this_stmt,none,
"'continue' cannot be used with %0 statements", (StringRef))

ERROR(unresolved_label,none,
"use of unresolved label %0", (Identifier))
"cannot find label %0 in scope", (Identifier))
ERROR(unresolved_label_corrected,none,
"use of unresolved label %0; did you mean %1?",
"cannot find label %0 in scope; did you mean %1?",
(Identifier, Identifier))

ERROR(foreach_sequence_does_not_conform_to_expected_protocol,none,
Expand Down
4 changes: 2 additions & 2 deletions lib/Sema/PCMacro.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -575,7 +575,7 @@ class Instrumenter : InstrumenterBase {
Context, BeforeLoggerRef, ArgsWithSourceRange, ArgLabels);
Added<ApplyExpr *> AddedBeforeLogger(BeforeLoggerCall);
if (!doTypeCheck(Context, TypeCheckDC, AddedBeforeLogger)) {
// typically due to 'use of unresolved identifier '__builtin_pc_before''
// typically due to 'cannot find '__builtin_pc_before' in scope'
return E; // return E, it will be used in recovering from TC failure
}

Expand All @@ -587,7 +587,7 @@ class Instrumenter : InstrumenterBase {
Context, AfterLoggerRef, ArgsWithSourceRange, ArgLabels);
Added<ApplyExpr *> AddedAfterLogger(AfterLoggerCall);
if (!doTypeCheck(Context, TypeCheckDC, AddedAfterLogger)) {
// typically due to 'use of unresolved identifier '__builtin_pc_after''
// typically due to 'cannot find '__builtin_pc_after' in scope'
return E; // return E, it will be used in recovering from TC failure
}

Expand Down
2 changes: 1 addition & 1 deletion lib/Sema/TypeCheckAttr.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3673,7 +3673,7 @@ static AbstractFunctionDecl *findAbstractFunctionDecl(

// Otherwise, emit the appropriate diagnostic and return nullptr.
if (results.empty()) {
ctx.Diags.diagnose(funcNameLoc, diag::use_unresolved_identifier, funcName,
ctx.Diags.diagnose(funcNameLoc, diag::cannot_find_in_scope, funcName,
funcName.isOperator());
return nullptr;
}
Expand Down
8 changes: 4 additions & 4 deletions lib/Sema/TypeCheckConstraints.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ static bool diagnoseRangeOperatorMisspell(DiagnosticEngine &Diags,

if (!corrected.empty()) {
Diags
.diagnose(UDRE->getLoc(), diag::use_unresolved_identifier_corrected,
.diagnose(UDRE->getLoc(), diag::cannot_find_in_scope_corrected,
UDRE->getName(), true, corrected)
.highlight(UDRE->getSourceRange())
.fixItReplace(UDRE->getSourceRange(), corrected);
Expand All @@ -416,7 +416,7 @@ static bool diagnoseIncDecOperator(DiagnosticEngine &Diags,

if (!corrected.empty()) {
Diags
.diagnose(UDRE->getLoc(), diag::use_unresolved_identifier_corrected,
.diagnose(UDRE->getLoc(), diag::cannot_find_in_scope_corrected,
UDRE->getName(), true, corrected)
.highlight(UDRE->getSourceRange());

Expand Down Expand Up @@ -537,7 +537,7 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE,

auto emitBasicError = [&] {
Context.Diags
.diagnose(Loc, diag::use_unresolved_identifier, Name,
.diagnose(Loc, diag::cannot_find_in_scope, Name,
Name.isOperator())
.highlight(UDRE->getSourceRange());
};
Expand All @@ -561,7 +561,7 @@ Expr *TypeChecker::resolveDeclRefExpr(UnresolvedDeclRefExpr *UDRE,

if (auto typo = corrections.claimUniqueCorrection()) {
auto diag = Context.Diags.diagnose(
Loc, diag::use_unresolved_identifier_corrected, Name,
Loc, diag::cannot_find_in_scope_corrected, Name,
Name.isOperator(), typo->CorrectedName.getBaseIdentifier().str());
diag.highlight(UDRE->getSourceRange());
typo->addFixits(diag);
Expand Down
2 changes: 1 addition & 1 deletion lib/Sema/TypeCheckExprObjC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ Optional<Type> TypeChecker::checkObjCKeyPathExpr(DeclContext *dc,
diags.diagnose(componentNameLoc, diag::could_not_find_type_member,
currentType, componentName);
else
diags.diagnose(componentNameLoc, diag::use_unresolved_identifier,
diags.diagnose(componentNameLoc, diag::cannot_find_in_scope,
componentName, false);

// Note all the correction candidates.
Expand Down
6 changes: 3 additions & 3 deletions lib/Sema/TypeCheckType.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1138,7 +1138,7 @@ static Type diagnoseUnknownType(TypeResolution resolution,
auto I = Remapped.find(TypeName);
if (I != Remapped.end()) {
auto RemappedTy = I->second->getString();
diags.diagnose(L, diag::use_undeclared_type_did_you_mean,
diags.diagnose(L, diag::cannot_find_type_in_scope_did_you_mean,
comp->getNameRef(), RemappedTy)
.highlight(R)
.fixItReplace(R, RemappedTy);
Expand All @@ -1155,7 +1155,7 @@ static Type diagnoseUnknownType(TypeResolution resolution,
return I->second;
}

diags.diagnose(L, diag::use_undeclared_type,
diags.diagnose(L, diag::cannot_find_type_in_scope,
comp->getNameRef())
.highlight(R);

Expand Down Expand Up @@ -1651,7 +1651,7 @@ Type TypeChecker::resolveIdentifierType(
if (!options.contains(TypeResolutionFlags::SilenceErrors)) {
auto moduleName = moduleTy->getModule()->getName();
diags.diagnose(Components.back()->getNameLoc(),
diag::use_undeclared_type, DeclNameRef(moduleName));
diag::cannot_find_type_in_scope, DeclNameRef(moduleName));
diags.diagnose(Components.back()->getNameLoc(),
diag::note_module_as_type, moduleName);
}
Expand Down
10 changes: 5 additions & 5 deletions test/APINotes/versioned.swift
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ func testRenamedUnknownEnum() {
}

func testRenamedTrueEnum() {
// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'TrueEnumValue'
// CHECK-DIAGS: [[@LINE+1]]:7: error: cannot find 'TrueEnumValue' in scope
_ = TrueEnumValue

// CHECK-DIAGS: [[@LINE+1]]:16: error: type 'TrueEnum' has no member 'TrueEnumValue'
Expand All @@ -169,7 +169,7 @@ func testRenamedTrueEnum() {

_ = TrueEnum.value // okay

// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'TrueEnumRenamed'
// CHECK-DIAGS: [[@LINE+1]]:7: error: cannot find 'TrueEnumRenamed' in scope
_ = TrueEnumRenamed

// CHECK-DIAGS: [[@LINE+1]]:16: error: type 'TrueEnum' has no member 'TrueEnumRenamed'
Expand All @@ -190,7 +190,7 @@ func testRenamedTrueEnum() {
_ = TrueEnum.renamedSwift4
// CHECK-DIAGS-4-NOT: :[[@LINE-1]]:16:

// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'TrueEnumAliasRenamed'
// CHECK-DIAGS: [[@LINE+1]]:7: error: cannot find 'TrueEnumAliasRenamed' in scope
_ = TrueEnumAliasRenamed

// CHECK-DIAGS: [[@LINE+1]]:16: error: type 'TrueEnum' has no member 'TrueEnumAliasRenamed'
Expand All @@ -213,7 +213,7 @@ func testRenamedTrueEnum() {
}

func testRenamedOptionyEnum() {
// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'OptionyEnumValue'
// CHECK-DIAGS: [[@LINE+1]]:7: error: cannot find 'OptionyEnumValue' in scope
_ = OptionyEnumValue

// CHECK-DIAGS: [[@LINE+1]]:19: error: type 'OptionyEnum' has no member 'OptionyEnumValue'
Expand All @@ -224,7 +224,7 @@ func testRenamedOptionyEnum() {

_ = OptionyEnum.value // okay

// CHECK-DIAGS: [[@LINE+1]]:7: error: use of unresolved identifier 'OptionyEnumRenamed'
// CHECK-DIAGS: [[@LINE+1]]:7: error: cannot find 'OptionyEnumRenamed' in scope
_ = OptionyEnumRenamed

// CHECK-DIAGS: [[@LINE+1]]:19: error: type 'OptionyEnum' has no member 'OptionyEnumRenamed'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -490,7 +490,7 @@ where T: Differentiable {}

// TF-265: Test invalid initializer (that uses a non-existent type).
class InvalidInitializer: Differentiable {
init(filterShape: (Int, Int, Int, Int), blah: NonExistentType) {} // expected-error {{use of undeclared type 'NonExistentType'}}
init(filterShape: (Int, Int, Int, Int), blah: NonExistentType) {} // expected-error {{cannot find type 'NonExistentType' in scope}}
}

// Test memberwise initializer synthesis.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -308,7 +308,7 @@ where T: Differentiable {}

// TF-265: Test invalid initializer (that uses a non-existent type).
struct InvalidInitializer: Differentiable {
init(filterShape: (Int, Int, Int, Int), blah: NonExistentType) {} // expected-error {{use of undeclared type 'NonExistentType'}}
init(filterShape: (Int, Int, Int, Int), blah: NonExistentType) {} // expected-error {{cannot find type 'NonExistentType' in scope}}
}

// Test memberwise initializer synthesis.
Expand Down
4 changes: 2 additions & 2 deletions test/AutoDiff/Sema/derivative_attr_type_checking.swift
Original file line number Diff line number Diff line change
Expand Up @@ -70,15 +70,15 @@ func vjpSubtractWrt1(x: Float, y: Float) -> (value: Float, pullback: (Float) ->

// Test invalid original function.

// expected-error @+1 {{use of unresolved identifier 'nonexistentFunction'}}
// expected-error @+1 {{cannot find 'nonexistentFunction' in scope}}
@derivative(of: nonexistentFunction)
func vjpOriginalFunctionNotFound(_ x: Float) -> (value: Float, pullback: (Float) -> Float) {
fatalError()
}

// Test `@derivative` attribute where `value:` result does not conform to `Differentiable`.
// Invalid original function should be diagnosed first.
// expected-error @+1 {{use of unresolved identifier 'nonexistentFunction'}}
// expected-error @+1 {{cannot find 'nonexistentFunction' in scope}}
@derivative(of: nonexistentFunction)
func vjpOriginalFunctionNotFound2(_ x: Float) -> (value: Int, pullback: (Float) -> Float) {
fatalError()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@

public protocol Base {
associatedtype Input
// expected-error @+1 {{use of undeclared type 'Differentiable'}}
// expected-error @+1 {{cannot find type 'Differentiable' in scope}}
associatedtype Output: Differentiable

// expected-error @+1 {{@differentiable attribute used without importing module '_Differentiation'}}
Expand Down
6 changes: 3 additions & 3 deletions test/ClangImporter/CoreServices_test.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ import CoreServices
func test(_ url: CFURL, ident: CSIdentity) {
_ = CSBackupIsItemExcluded(url, nil) // okay

_ = nil as TypeThatDoesNotExist? // expected-error {{use of undeclared type 'TypeThatDoesNotExist'}}
_ = nil as TypeThatDoesNotExist? // expected-error {{cannot find type 'TypeThatDoesNotExist' in scope}}
_ = nil as CoreServices.Collection? // okay

_ = kCollectionNoAttributes // expected-error{{use of unresolved identifier 'kCollectionNoAttributes'}}
_ = kCollectionNoAttributes // expected-error{{cannot find 'kCollectionNoAttributes' in scope}}

var name: Unmanaged<CFString>?
_ = LSCopyDisplayNameForURL(url, &name) as OSStatus // okay
Expand All @@ -22,6 +22,6 @@ func test(_ url: CFURL, ident: CSIdentity) {
_ = CSIdentityCreateCopy(nil, ident) // okay

var vers: UInt32 = 0
_ = KCGetKeychainManagerVersion(&vers) as OSStatus// expected-error{{use of unresolved identifier 'KCGetKeychainManagerVersion'}}
_ = KCGetKeychainManagerVersion(&vers) as OSStatus// expected-error{{cannot find 'KCGetKeychainManagerVersion' in scope}}
_ = CoreServices.KCGetKeychainManagerVersion(&vers) as OSStatus// okay
}
6 changes: 3 additions & 3 deletions test/ClangImporter/Darwin_test.swift
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import Darwin
import MachO

_ = nil as Fract? // expected-error{{use of undeclared type 'Fract'}}
_ = nil as Fract? // expected-error{{cannot find type 'Fract' in scope}}
_ = nil as Darwin.Fract? // okay

_ = 0 as OSErr
Expand All @@ -14,8 +14,8 @@ _ = 0 as UniChar

_ = ProcessSerialNumber()

_ = 0 as Byte // expected-error {{use of undeclared type 'Byte'}} {{10-14=UInt8}}
_ = 0 as Byte // expected-error {{cannot find type 'Byte' in scope}} {{10-14=UInt8}}
Darwin.fakeAPIUsingByteInDarwin() as Int // expected-error {{cannot convert value of type 'UInt8' to type 'Int' in coercion}}

_ = FALSE // expected-error {{use of unresolved identifier 'FALSE'}}
_ = FALSE // expected-error {{cannot find 'FALSE' in scope}}
_ = DYLD_BOOL.FALSE
14 changes: 7 additions & 7 deletions test/ClangImporter/MixedSource/Xcc_include.swift
Original file line number Diff line number Diff line change
Expand Up @@ -6,18 +6,18 @@
// CHECK-INCLUDE-MISSING: error: '{{.*}}this_header_does_not_exist.h' file not found

func test() {
// CHECK-INCLUDE-ONLY: error: use of unresolved identifier 'includedConst'
// CHECK-INCLUDE-PLUS-BRIDGING-NOT: unresolved identifier 'includedConst'
// CHECK-INCLUDE-FRAMEWORK: error: use of unresolved identifier 'includedConst'
// CHECK-INCLUDE-ONLY: error: cannot find 'includedConst' in scope
// CHECK-INCLUDE-PLUS-BRIDGING-NOT: cannot find 'includedConst' in scope
// CHECK-INCLUDE-FRAMEWORK: error: cannot find 'includedConst' in scope
_ = includedConst

// CHECK-INCLUDE-ONLY: error: use of unresolved identifier 'errSecSuccess'
// CHECK-INCLUDE-PLUS-BRIDGING: error: use of unresolved identifier 'errSecSuccess'
// CHECK-INCLUDE-FRAMEWORK: error: use of unresolved identifier 'errSecSuccess'
// CHECK-INCLUDE-ONLY: error: cannot find 'errSecSuccess' in scope
// CHECK-INCLUDE-PLUS-BRIDGING: error: cannot find 'errSecSuccess' in scope
// CHECK-INCLUDE-FRAMEWORK: error: cannot find 'errSecSuccess' in scope
_ = errSecSuccess

#if FRAMEWORK
// CHECK-INCLUDE-FRAMEWORK-NOT: error: unresolved identifier 'Base'
// CHECK-INCLUDE-FRAMEWORK-NOT: error: cannot find 'Base' in scope
_ = Base()
#endif
}
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ import HasBridgingHeader // expected-error {{failed to import bridging header}}
// HEADER-ERROR: error: failed to import bridging header '{{.*}}/error-on-define.h'
// HEADER-ERROR-NOT: error:

let _ = x // expected-error {{use of unresolved identifier 'x'}}
let _ = x // expected-error {{cannot find 'x' in scope}}
2 changes: 1 addition & 1 deletion test/ClangImporter/MixedSource/broken-modules.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,4 @@ import BrokenClangModule


_ = BrokenClangModule.x
// CHECK: broken-modules.swift:[[@LINE-1]]:5: error: use of unresolved identifier 'BrokenClangModule'
// CHECK: broken-modules.swift:[[@LINE-1]]:5: error: cannot find 'BrokenClangModule' in scope
10 changes: 5 additions & 5 deletions test/ClangImporter/MixedSource/can_import_objc_idempotent.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,21 +18,21 @@
// current module. Only an 'import Foo' statement should do this.

#if canImport(AppKit)
class AppKitView : NSView {} // expected-error {{use of undeclared type 'NSView'}}
class AppKitView : NSView {} // expected-error {{cannot find type 'NSView' in scope}}
#endif

#if canImport(UIKit)
class UIKitView : UIView {} // expected-error {{use of undeclared type 'UIView'}}
class UIKitView : UIView {} // expected-error {{cannot find type 'UIView' in scope}}
#endif

#if canImport(CoreGraphics)
let square = CGRect(x: 100, y: 100, width: 100, height: 100)
// expected-error@-1 {{use of unresolved identifier 'CGRect'}}
// expected-error@-1 {{cannot find 'CGRect' in scope}}

let (r, s) = square.divided(atDistance: 50, from: .minXEdge)
#endif

#if canImport(MixedWithHeader)
let object = NSObject() // expected-error {{use of unresolved identifier 'NSObject'}}
let someAPI = Derived() // expected-error {{use of unresolved identifier 'Derived'}}
let object = NSObject() // expected-error {{cannot find 'NSObject' in scope}}
let someAPI = Derived() // expected-error {{cannot find 'Derived' in scope}}
#endif
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func testStruct(_ p: Point2D) -> Point2D {

#if !SILGEN
func testSuppressed() {
let _: __int128_t? = nil // expected-error{{use of undeclared type '__int128_t'}}
let _: __int128_t? = nil // expected-error{{cannot find type '__int128_t' in scope}}
}
#endif

Expand Down
2 changes: 1 addition & 1 deletion test/ClangImporter/attr-swift_name_renaming.swift
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ func test() {

// Typedef-of-anonymous-type-name renaming
var p = Point()
var p2 = PointType() // FIXME: should provide Fix-It expected-error{{use of unresolved identifier 'PointType'}} {{none}}
var p2 = PointType() // FIXME: should provide Fix-It expected-error{{cannot find 'PointType' in scope}} {{none}}

// Field name remapping
p.x = 7
Expand Down
6 changes: 3 additions & 3 deletions test/ClangImporter/attr-swift_private.swift
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,9 @@ public func testTopLevel() {
_ = __PrivS1()

#if !IRGEN
let _ = PrivFooSub() // expected-error {{use of unresolved identifier}}
privTest() // expected-error {{use of unresolved identifier}}
PrivS1() // expected-error {{use of unresolved identifier}}
let _ = PrivFooSub() // expected-error {{cannot find 'PrivFooSub' in scope}}
privTest() // expected-error {{cannot find 'privTest' in scope}}
PrivS1() // expected-error {{cannot find 'PrivS1' in scope}}
#endif
}

Expand Down
2 changes: 1 addition & 1 deletion test/ClangImporter/bad-ns-extensible-string-enum.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -typecheck %s -enable-objc-interop -import-objc-header %S/Inputs/bad-ns-extensible-string-enum.h -verify

let string = MyString.MyStringOne // expected-error {{use of unresolved identifier 'MyString'}}
let string = MyString.MyStringOne // expected-error {{cannot find 'MyString' in scope}}
2 changes: 1 addition & 1 deletion test/ClangImporter/ctypes_parse.swift
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ func testFuncStructDisambiguation() {
}

func testVoid() {
var x: MyVoid // expected-error{{use of undeclared type 'MyVoid'}}
var x: MyVoid // expected-error{{cannot find type 'MyVoid' in scope}}
returnsMyVoid()
}

Expand Down
2 changes: 1 addition & 1 deletion test/ClangImporter/ctypes_parse_objc.swift
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ func testImportCFTypes() {
}

func testImportSEL() {
var t1 : SEL // expected-error {{use of undeclared type 'SEL'}} {{12-15=Selector}}
var t1 : SEL // expected-error {{cannot find type 'SEL' in scope}} {{12-15=Selector}}
var t2 : ctypes.SEL // expected-error {{no type named 'SEL' in module 'ctypes'}}
}

Expand Down
4 changes: 2 additions & 2 deletions test/ClangImporter/enum-objc.swift
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ let _: Int = forwardWithUnderlyingPointer // expected-error {{cannot convert val
let _: Int = forwardObjCPointer // expected-error {{cannot convert value of type '(OpaquePointer) -> Void' to specified type 'Int'}}

// FIXME: It would be nice to import these as unavailable somehow instead.
let _: Int = forwardWithUnderlyingValue // expected-error {{use of unresolved identifier 'forwardWithUnderlyingValue'}}
let _: Int = forwardObjCValue // expected-error {{use of unresolved identifier 'forwardObjCValue'}}
let _: Int = forwardWithUnderlyingValue // expected-error {{cannot find 'forwardWithUnderlyingValue' in scope}}
let _: Int = forwardObjCValue // expected-error {{cannot find 'forwardObjCValue' in scope}}

// Note that if /these/ start getting imported as unavailable, the error will
// also mention that there's a missing argument, since the second argument isn't
Expand Down
Loading