From ae50e0f6231631c83aa8ea311d34c28ca6c4de1b Mon Sep 17 00:00:00 2001 From: Boaz Brickner Date: Wed, 5 Nov 2025 17:53:04 +0100 Subject: [PATCH] Propagate location to `CppOverloadSetValue` instructions (#6317) Part of #5915. --- toolchain/check/cpp/import.cpp | 32 +- toolchain/check/cpp/import.h | 6 +- toolchain/check/cpp/operators.cpp | 2 +- .../testdata/interop/cpp/class/access.carbon | 498 ++++++++++++------ 4 files changed, 352 insertions(+), 186 deletions(-) diff --git a/toolchain/check/cpp/import.cpp b/toolchain/check/cpp/import.cpp index 273f66247ca7..a4b3f1d6dcfa 100644 --- a/toolchain/check/cpp/import.cpp +++ b/toolchain/check/cpp/import.cpp @@ -2144,8 +2144,9 @@ static auto LookupBuiltinTypes(Context& context, SemIR::LocId loc_id, } auto ImportCppOverloadSet( - Context& context, SemIR::NameScopeId scope_id, SemIR::NameId name_id, - clang::CXXRecordDecl* naming_class, clang::UnresolvedSet<4>&& overload_set, + Context& context, SemIR::LocId loc_id, SemIR::NameScopeId scope_id, + SemIR::NameId name_id, clang::CXXRecordDecl* naming_class, + clang::UnresolvedSet<4>&& overload_set, clang::OverloadCandidateSet::OperatorRewriteInfo operator_rewrite_info) -> SemIR::InstId { SemIR::CppOverloadSetId overload_set_id = context.cpp_overload_sets().Add( @@ -2154,14 +2155,11 @@ auto ImportCppOverloadSet( .naming_class = naming_class, .candidate_functions = std::move(overload_set), .operator_rewrite_info = operator_rewrite_info}); - - auto overload_set_inst_id = - // TODO: Add a location. - AddInstInNoBlock( - context, Parse::NodeId::None, - {.type_id = GetCppOverloadSetType(context, overload_set_id, - SemIR::SpecificId::None), - .overload_set_id = overload_set_id}); + auto overload_set_inst_id = AddInstInNoBlock( + context, loc_id, + {.type_id = GetCppOverloadSetType(context, overload_set_id, + SemIR::SpecificId::None), + .overload_set_id = overload_set_id}); context.imports().push_back(overload_set_inst_id); return overload_set_inst_id; @@ -2184,7 +2182,7 @@ static auto GetOverloadSetAccess(const clang::UnresolvedSet<4>& overload_set) // Imports an overload set from Clang to Carbon and adds the name into the // `NameScope`. -static auto ImportOverloadSetIntoScope(Context& context, +static auto ImportOverloadSetIntoScope(Context& context, SemIR::LocId loc_id, SemIR::NameScopeId scope_id, SemIR::NameId name_id, clang::CXXRecordDecl* naming_class, @@ -2192,7 +2190,7 @@ static auto ImportOverloadSetIntoScope(Context& context, -> SemIR::ScopeLookupResult { SemIR::AccessKind access_kind = GetOverloadSetAccess(overload_set); SemIR::InstId inst_id = ImportCppOverloadSet( - context, scope_id, name_id, naming_class, std::move(overload_set), + context, loc_id, scope_id, name_id, naming_class, std::move(overload_set), /*operator_rewrite_info=*/{}); AddNameToScope(context, scope_id, name_id, access_kind, inst_id); return SemIR::ScopeLookupResult::MakeWrappedLookupResult(inst_id, @@ -2202,7 +2200,7 @@ static auto ImportOverloadSetIntoScope(Context& context, // Imports the constructors for a given class name. The found constructors are // imported as part of an overload set into the scope. Currently copy/move // constructors are not imported. -static auto ImportConstructorsIntoScope(Context& context, +static auto ImportConstructorsIntoScope(Context& context, SemIR::LocId loc_id, SemIR::NameScopeId scope_id, SemIR::NameId name_id) -> SemIR::ScopeLookupResult { @@ -2223,8 +2221,8 @@ static auto ImportConstructorsIntoScope(Context& context, return SemIR::ScopeLookupResult::MakeNotFound(); } - return ImportOverloadSetIntoScope(context, scope_id, name_id, naming_class, - std::move(overload_set)); + return ImportOverloadSetIntoScope(context, loc_id, scope_id, name_id, + naming_class, std::move(overload_set)); } // Imports a builtin type from Clang to Carbon and adds the name into the @@ -2278,7 +2276,7 @@ auto ImportNameFromCpp(Context& context, SemIR::LocId loc_id, lookup->getFoundDecl()->isFunctionOrFunctionTemplate())) { clang::UnresolvedSet<4> overload_set; overload_set.append(lookup->begin(), lookup->end()); - return ImportOverloadSetIntoScope(context, scope_id, name_id, + return ImportOverloadSetIntoScope(context, loc_id, scope_id, name_id, lookup->getNamingClass(), std::move(overload_set)); } @@ -2296,7 +2294,7 @@ auto ImportNameFromCpp(Context& context, SemIR::LocId loc_id, } if (IsDeclInjectedClassName(context, scope_id, name_id, lookup->getFoundDecl())) { - return ImportConstructorsIntoScope(context, scope_id, name_id); + return ImportConstructorsIntoScope(context, loc_id, scope_id, name_id); } auto key = SemIR::ClangDeclKey::ForNonFunctionDecl(lookup->getFoundDecl()); return ImportNameDeclIntoScope(context, loc_id, scope_id, name_id, key, diff --git a/toolchain/check/cpp/import.h b/toolchain/check/cpp/import.h index b3a1ec657a93..71565654b54b 100644 --- a/toolchain/check/cpp/import.h +++ b/toolchain/check/cpp/import.h @@ -12,6 +12,7 @@ #include "toolchain/check/context.h" #include "toolchain/check/diagnostic_helpers.h" #include "toolchain/diagnostics/diagnostic_emitter.h" +#include "toolchain/sem_ir/ids.h" namespace Carbon::Check { @@ -33,8 +34,9 @@ auto ImportCppFunctionDecl(Context& context, SemIR::LocId loc_id, // Imports an overloaded function set from Clang to Carbon. auto ImportCppOverloadSet( - Context& context, SemIR::NameScopeId scope_id, SemIR::NameId name_id, - clang::CXXRecordDecl* naming_class, clang::UnresolvedSet<4>&& overload_set, + Context& context, SemIR::LocId loc_id, SemIR::NameScopeId scope_id, + SemIR::NameId name_id, clang::CXXRecordDecl* naming_class, + clang::UnresolvedSet<4>&& overload_set, clang::OverloadCandidateSet::OperatorRewriteInfo operator_rewrite_info) -> SemIR::InstId; diff --git a/toolchain/check/cpp/operators.cpp b/toolchain/check/cpp/operators.cpp index d5a75c974b17..10e1c7817b36 100644 --- a/toolchain/check/cpp/operators.cpp +++ b/toolchain/check/cpp/operators.cpp @@ -208,7 +208,7 @@ auto LookupCppOperator(Context& context, SemIR::LocId loc_id, Operator op, } return ImportCppOverloadSet( - context, SemIR::NameScopeId::None, SemIR::NameId::CppOperator, + context, loc_id, SemIR::NameScopeId::None, SemIR::NameId::CppOperator, /*naming_class=*/nullptr, std::move(functions), operator_rewrite_info); } diff --git a/toolchain/check/testdata/interop/cpp/class/access.carbon b/toolchain/check/testdata/interop/cpp/class/access.carbon index 2b10c8af3603..c1bcbcd70593 100644 --- a/toolchain/check/testdata/interop/cpp/class/access.carbon +++ b/toolchain/check/testdata/interop/cpp/class/access.carbon @@ -280,16 +280,20 @@ library "[[@TEST_NAME]]"; import Cpp library "function_member_protected.h"; fn F(c: Cpp.C*) { - // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+5]]:3: error: cannot access protected member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+7]]:3: error: cannot access protected member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: c->instance_fn(); + // CHECK:STDERR: ^~~~~~~~~~~~~~ + // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: c->instance_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_protected.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: c->instance_fn(); - // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+5]]:3: error: cannot access protected member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+7]]:3: error: cannot access protected member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.C.static_fn(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_import_function_member_protected.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.C.static_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_protected.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.C.static_fn(); } @@ -352,10 +356,12 @@ import Cpp library "function_member_private.h"; class Derived { extend base: Cpp.C; fn F[self: Self]() { - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:5: error: cannot access private member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:5: error: cannot access private member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: self.instance_fn(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: self.instance_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: self.instance_fn(); // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:5: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] @@ -364,38 +370,48 @@ class Derived { // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: static_fn(); - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:5: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:5: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.static_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: static_fn(); + // CHECK:STDERR: ^~~~~~~~~ // CHECK:STDERR: Derived.static_fn(); - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:5: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:5: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.C.static_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE-12]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: static_fn(); + // CHECK:STDERR: ^~~~~~~~~ // CHECK:STDERR: Cpp.C.static_fn(); } } fn F(c: Cpp.C*) { - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:3: error: cannot access private member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:3: error: cannot access private member `instance_fn` of type `Cpp.C` [ClassInvalidMemberAccess] // CHECK:STDERR: c->instance_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE-30]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: self.instance_fn(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~ // CHECK:STDERR: c->instance_fn(); - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:3: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:3: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.static_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE-32]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: static_fn(); + // CHECK:STDERR: ^~~~~~~~~ // CHECK:STDERR: Derived.static_fn(); - // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+5]]:3: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE+7]]:3: error: cannot access private member `static_fn` of type `Cpp.C` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.C.static_fn(); // CHECK:STDERR: ^~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_function_member_private.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_function_member_private.carbon:[[@LINE-40]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: static_fn(); + // CHECK:STDERR: ^~~~~~~~~ // CHECK:STDERR: Cpp.C.static_fn(); } @@ -625,22 +641,28 @@ library "[[@TEST_NAME]]"; import Cpp library "overload_set_base_class.h"; fn F() { - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+5]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+7]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PublicCall.PublicCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PublicCall.PublicCall()); - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+5]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+7]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Protected.Overload(Cpp.ProtectedCall.ProtectedCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Protected.Overload(Cpp.ProtectedCall.ProtectedCall()); - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+5]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE+7]]:3: error: cannot access protected member `Overload` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PrivateCall.PrivateCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_overload_set_protected_base_class.carbon:[[@LINE-12]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Protected.Overload(Cpp.PrivateCall.PrivateCall()); } @@ -688,22 +710,28 @@ library "[[@TEST_NAME]]"; import Cpp library "overload_set_base_class.h"; fn F() { - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+5]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+7]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Private.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.Overload(Cpp.PublicCall.PublicCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.Overload(Cpp.PublicCall.PublicCall()); - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+5]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+7]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Private.Overload(Cpp.ProtectedCall.ProtectedCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Private.Overload(Cpp.ProtectedCall.ProtectedCall()); - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+5]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE+7]]:3: error: cannot access private member `Overload` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Private.Overload(Cpp.PrivateCall.PrivateCall()); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_import_overload_set_private_base_class.carbon:[[@LINE-12]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.Overload(Cpp.PublicCall.PublicCall()); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Private.Overload(Cpp.PrivateCall.PrivateCall()); } @@ -815,26 +843,32 @@ class Derived { extend base: Cpp.Public; fn CallStatic() { - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Public.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Public.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Public.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Public.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PrivateStatic(); } fn CallInstance(var instance: Cpp.Public) { //@dump-sem-ir-begin - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); //@dump-sem-ir-end @@ -842,42 +876,54 @@ class Derived { } fn Call(var instance: Cpp.Public) { - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Public.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Public.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Public.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Public.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Public.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE-46]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Public.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Public.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Public` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE-54]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Public.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Public` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_access_denied.carbon:[[@LINE-51]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PrivateInstance(); } @@ -923,86 +969,110 @@ class Derived { extend base: Cpp.Protected; fn CallStatic() { - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Protected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.PrivateStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PrivateStatic(); } fn CallInstance(var instance: Cpp.Protected) { - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); } } fn Call(var instance: Cpp.Protected) { - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Protected.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.PublicStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicStatic` of type `Derived` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicStatic` of type `Derived` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PublicStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Protected.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Protected.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Protected.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-61]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Protected.PrivateStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-69]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Protected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PrivateStatic(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Protected` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_protected_access_denied.carbon:[[@LINE-75]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PrivateInstance(); } @@ -1017,126 +1087,162 @@ class Derived { extend base: Cpp.Private; fn CallStatic() { - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Private.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.PublicStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PublicStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Private.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.Private.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.Private.PrivateStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PrivateStatic(); } fn CallInstance(var instance: Cpp.Private) { - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); } } fn Call(var instance: Cpp.Private) { - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Private.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Private.PublicStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PublicStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Private.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Private.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.Private.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.Private.PrivateStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.Private.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PrivateStatic(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-77]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-76]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.Private` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_private_access_denied.carbon:[[@LINE-75]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PrivateInstance(); } @@ -1182,86 +1288,110 @@ class Derived { extend base: Cpp.PublicProtected; fn CallStatic() { - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PrivateStatic(); } fn CallInstance(var instance: Cpp.PublicProtected) { - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); } } fn Call(var instance: Cpp.PublicProtected) { - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicProtected.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicStatic` of type `Derived` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicStatic` of type `Derived` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicProtected.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicProtected.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicProtected.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedStatic` of type `Derived` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-4]]:3: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicProtected.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-61]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-69]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicProtected.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `PublicInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `PublicInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access protected member `ProtectedInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+4]]:3: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.PublicProtected` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_protected_access_denied.carbon:[[@LINE-75]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PrivateInstance(); } @@ -1276,126 +1406,162 @@ class Derived { extend base: Cpp.PublicPrivate; fn CallStatic() { - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Self.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-4]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Self.PrivateStatic(); } fn CallInstance(var instance: Cpp.PublicPrivate) { - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PublicInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PublicInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `ProtectedInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `ProtectedInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:5: error: cannot access private member `PrivateInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+4]]:5: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] // CHECK:STDERR: instance.PrivateInstance(); } } fn Call(var instance: Cpp.PublicPrivate) { - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PublicStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PublicStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PublicStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.ProtectedStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.ProtectedStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.ProtectedStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-79]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateStatic` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: Derived.PrivateStatic(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-87]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: Cpp.PublicPrivate.PrivateStatic(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: Derived.PrivateStatic(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PublicInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PublicInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PublicInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-77]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PublicInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PublicInstance(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `ProtectedInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `ProtectedInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.ProtectedInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-76]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.ProtectedInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.ProtectedInstance(); - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+5]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE+7]]:3: error: cannot access private member `PrivateInstance` of type `Cpp.PublicPrivate` [ClassInvalidMemberAccess] // CHECK:STDERR: instance.PrivateInstance(); // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ - // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: fail_base_class_public_private_access_denied.carbon:[[@LINE-75]]:5: note: declared here [ClassMemberDeclaration] + // CHECK:STDERR: instance.PrivateInstance(); + // CHECK:STDERR: ^~~~~~~~~~~~~~~~~~~~~~~~ // CHECK:STDERR: instance.PrivateInstance(); }