Skip to content

Commit 7b91682

Browse files
authored
Merge pull request #17252 from slavapestov/access-control-improvements
Access control improvements
2 parents 8b54a26 + 0d92918 commit 7b91682

File tree

7 files changed

+325
-106
lines changed

7 files changed

+325
-106
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1325,15 +1325,15 @@ ERROR(unsupported_nested_protocol,none,
13251325
// Type aliases
13261326
ERROR(type_alias_underlying_type_access,none,
13271327
"type alias %select{must be declared %select{"
1328-
"%select{private|fileprivate|internal|%error|%error}2|private or fileprivate}3"
1328+
"%select{private|fileprivate|internal|%error|%error}1|private or fileprivate}3"
13291329
"|cannot be declared "
13301330
"%select{in this context|fileprivate|internal|public|open}1}0 "
13311331
"because its underlying type uses "
13321332
"%select{a private|a fileprivate|an internal|%error|%error}2 type",
13331333
(bool, AccessLevel, AccessLevel, bool))
13341334
WARNING(type_alias_underlying_type_access_warn,none,
13351335
"type alias %select{should be declared "
1336-
"%select{private|fileprivate|internal|%error|%error}2"
1336+
"%select{private|fileprivate|internal|%error|%error}1"
13371337
"|should not be declared "
13381338
"%select{in this context|fileprivate|internal|public|open}1}0 "
13391339
"because its underlying type uses "
@@ -1351,7 +1351,7 @@ ERROR(subscript_type_access,none,
13511351
(bool, AccessLevel, AccessLevel, bool))
13521352
WARNING(subscript_type_access_warn,none,
13531353
"subscript %select{should be declared "
1354-
"%select{private|fileprivate|internal|%error|%error}2"
1354+
"%select{private|fileprivate|internal|%error|%error}1"
13551355
"|should not be declared %select{in this context|fileprivate|internal|public|open}1}0 "
13561356
"because its %select{index|element type}3 uses "
13571357
"%select{a private|a fileprivate|an internal|%error|%error}2 type",
@@ -1369,7 +1369,7 @@ ERROR(function_type_access,none,
13691369
(bool, AccessLevel, bool, AccessLevel, unsigned, bool))
13701370
WARNING(function_type_access_warn,none,
13711371
"%select{function|method|initializer}4 "
1372-
"%select{should be declared %select{private|fileprivate|internal|%error|%error}3"
1372+
"%select{should be declared %select{private|fileprivate|internal|%error|%error}1"
13731373
"|should not be declared %select{in this context|fileprivate|internal|public|open}1}0 "
13741374
"because its %select{parameter|result}5 uses "
13751375
"%select{a private|a fileprivate|an internal|%error|%error}3 type",
@@ -1562,20 +1562,22 @@ NOTE(witness_fix_access,none,
15621562
"mark the %0 as '%select{%error|fileprivate|internal|public|%error}1' to "
15631563
"satisfy the requirement", (DescriptiveDeclKind, AccessLevel))
15641564

1565-
ERROR(protocol_refine_access,none,
1565+
ERROR(protocol_access,none,
15661566
"%select{protocol must be declared %select{"
1567-
"%select{private|fileprivate|internal|%error|%error}2"
1568-
"|private or fileprivate}3 because it refines"
1567+
"%select{private|fileprivate|internal|%error|%error}1"
1568+
"|private or fileprivate}4 because %select{it refines|its 'where' clause uses}2"
15691569
"|%select{in this context|fileprivate|internal|public|%error}1 "
1570-
"protocol cannot refine}0 "
1571-
"%select{a private|a fileprivate|an internal|%error|%error}2 protocol",
1572-
(bool, AccessLevel, AccessLevel, bool))
1573-
WARNING(protocol_refine_access_warn,none,
1570+
"%select{protocol cannot refine|protocol's 'where' clause cannot use}2}0 "
1571+
"%select{a private|a fileprivate|an internal|%error|%error}3 protocol",
1572+
(bool, AccessLevel, bool, AccessLevel, bool))
1573+
WARNING(protocol_access_warn,none,
15741574
"%select{protocol should be declared "
1575-
"%select{private|fileprivate|internal|%error|%error}2 because it refines"
1576-
"|%select{in this context|fileprivate|internal|public|%error}1 protocol should not "
1577-
"refine}0 %select{a private|a fileprivate|an internal|%error|%error}2 protocol",
1578-
(bool, AccessLevel, AccessLevel, bool))
1575+
"%select{private|fileprivate|internal|%error|%error}1 because "
1576+
"%select{it refines|its 'where' clause uses}2"
1577+
"|%select{in this context|fileprivate|internal|public|%error}1 "
1578+
"%select{protocol should not refine|protocol's 'where' clause should not use}2}0 "
1579+
"%select{a private|a fileprivate|an internal|%error|%error}3 protocol",
1580+
(bool, AccessLevel, bool, AccessLevel, bool))
15791581
ERROR(protocol_property_must_be_computed_var,none,
15801582
"immutable property requirement must be declared as 'var' with a "
15811583
"'{ get }' specifier", ())
@@ -2119,15 +2121,15 @@ NOTE(enum_declares_rawrep_with_raw_type,none,
21192121
"%0 declares raw type %1, which implies RawRepresentable", (Type, Type))
21202122
ERROR(enum_raw_type_access,none,
21212123
"enum %select{must be declared %select{"
2122-
"%select{private|fileprivate|internal|%error|%error}2|private or fileprivate}3"
2124+
"%select{private|fileprivate|internal|%error|%error}1|private or fileprivate}3"
21232125
"|cannot be declared "
21242126
"%select{in this context|fileprivate|internal|public|open}1}0 "
21252127
"because its raw type uses "
21262128
"%select{a private|a fileprivate|an internal|%error|%error}2 type",
21272129
(bool, AccessLevel, AccessLevel, bool))
21282130
WARNING(enum_raw_type_access_warn,none,
21292131
"enum %select{should be declared "
2130-
"%select{private|fileprivate|internal|%error|%error}2"
2132+
"%select{private|fileprivate|internal|%error|%error}1"
21312133
"|should not be declared %select{in this context|fileprivate|internal|public|open}1}0 "
21322134
"because its raw type uses "
21332135
"%select{a private|a fileprivate|an internal|%error|%error}2 type",
@@ -3235,7 +3237,7 @@ ERROR(bool_intrinsics_not_found,none,
32353237
"broken standard library: cannot find intrinsic operations on Bool", ())
32363238
ERROR(class_super_access,none,
32373239
"class %select{must be declared %select{"
3238-
"%select{private|fileprivate|internal|%error|%error}2|private or fileprivate}3"
3240+
"%select{private|fileprivate|internal|%error|%error}1|private or fileprivate}3"
32393241
"|cannot be declared %select{in this context|fileprivate|internal|public|open}1}0 "
32403242
"because its superclass "
32413243
"%select{is %select{private|fileprivate|internal|%error|%error}2"
@@ -3244,7 +3246,7 @@ ERROR(class_super_access,none,
32443246
(bool, AccessLevel, AccessLevel, bool, bool))
32453247
WARNING(class_super_access_warn,none,
32463248
"class %select{should be declared "
3247-
"%select{private|fileprivate|internal|%error|%error}2"
3249+
"%select{private|fileprivate|internal|%error|%error}1"
32483250
"|should not be declared %select{in this context|fileprivate|internal|public|open}1}0 "
32493251
"because its superclass "
32503252
"%select{is %select{private|fileprivate|internal|%error|%error}2"

lib/AST/SubstitutionMap.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -620,7 +620,7 @@ void SubstitutionMap::verify() const {
620620
substType->dump();
621621
llvm::dbgs() << "SubstitutionMap:\n";
622622
dump(llvm::dbgs());
623-
llvm::errs() << "\n";
623+
llvm::dbgs() << "\n";
624624
}
625625

626626
assert(proto->isObjC() &&
@@ -634,7 +634,7 @@ void SubstitutionMap::verify() const {
634634
substType->dump(llvm::dbgs());
635635
llvm::dbgs() << "SubstitutionMap:\n";
636636
dump(llvm::dbgs());
637-
llvm::errs() << "\n";
637+
llvm::dbgs() << "\n";
638638
}
639639
assert(conformance.isConcrete() && "Conformance should be concrete");
640640

0 commit comments

Comments
 (0)