@@ -538,9 +538,7 @@ makeEnumRawValueConstructor(ClangImporter::Implementation &Impl,
538
538
539
539
ctorDecl->setBody (body);
540
540
ctorDecl->setBodyTypeCheckedIfPresent ();
541
-
542
- Impl.registerExternalDecl (ctorDecl);
543
-
541
+
544
542
return ctorDecl;
545
543
}
546
544
@@ -616,7 +614,7 @@ static AccessorDecl *makeEnumRawValueGetter(ClangImporter::Implementation &Impl,
616
614
617
615
getterDecl->setBody (body);
618
616
getterDecl->setBodyTypeCheckedIfPresent ();
619
- Impl. registerExternalDecl (getterDecl);
617
+
620
618
return getterDecl;
621
619
}
622
620
@@ -694,7 +692,6 @@ static AccessorDecl *makeStructRawValueGetter(
694
692
getterDecl->setBody (body);
695
693
getterDecl->setBodyTypeCheckedIfPresent ();
696
694
697
- Impl.registerExternalDecl (getterDecl);
698
695
return getterDecl;
699
696
}
700
697
@@ -854,7 +851,6 @@ makeIndirectFieldAccessors(ClangImporter::Implementation &Impl,
854
851
getterDecl->setBody (body);
855
852
getterDecl->setBodyTypeCheckedIfPresent ();
856
853
getterDecl->getAttrs ().add (new (C) TransparentAttr (/* implicit*/ true ));
857
- Impl.registerExternalDecl (getterDecl);
858
854
}
859
855
860
856
// Synthesize the setter body
@@ -886,7 +882,6 @@ makeIndirectFieldAccessors(ClangImporter::Implementation &Impl,
886
882
setterDecl->setBody (body);
887
883
setterDecl->setBodyTypeCheckedIfPresent ();
888
884
setterDecl->getAttrs ().add (new (C) TransparentAttr (/* implicit*/ true ));
889
- Impl.registerExternalDecl (setterDecl);
890
885
}
891
886
892
887
return { getterDecl, setterDecl };
@@ -964,7 +959,6 @@ makeUnionFieldAccessors(ClangImporter::Implementation &Impl,
964
959
getterDecl->setBody (body);
965
960
getterDecl->setBodyTypeCheckedIfPresent ();
966
961
getterDecl->getAttrs ().add (new (C) TransparentAttr (/* implicit*/ true ));
967
- Impl.registerExternalDecl (getterDecl);
968
962
}
969
963
970
964
// Synthesize the setter body
@@ -1026,7 +1020,6 @@ makeUnionFieldAccessors(ClangImporter::Implementation &Impl,
1026
1020
setterDecl->setBody (body);
1027
1021
setterDecl->setBodyTypeCheckedIfPresent ();
1028
1022
setterDecl->getAttrs ().add (new (C) TransparentAttr (/* implicit*/ true ));
1029
- Impl.registerExternalDecl (setterDecl);
1030
1023
}
1031
1024
1032
1025
return { getterDecl, setterDecl };
@@ -1160,8 +1153,6 @@ makeBitFieldAccessors(ClangImporter::Implementation &Impl,
1160
1153
cGetterExpr,
1161
1154
nullptr );
1162
1155
cGetterDecl->setBody (cGetterBody);
1163
-
1164
- Impl.registerExternalDecl (getterDecl);
1165
1156
}
1166
1157
1167
1158
// Synthesize the setter body
@@ -1218,8 +1209,6 @@ makeBitFieldAccessors(ClangImporter::Implementation &Impl,
1218
1209
clang::FPOptions ());
1219
1210
1220
1211
cSetterDecl->setBody (cSetterExpr);
1221
-
1222
- Impl.registerExternalDecl (setterDecl);
1223
1212
}
1224
1213
1225
1214
return { getterDecl, setterDecl };
@@ -1296,9 +1285,6 @@ createDefaultConstructor(ClangImporter::Implementation &Impl,
1296
1285
constructor->setBody (body);
1297
1286
constructor->setBodyTypeCheckedIfPresent ();
1298
1287
1299
- // Add this as an external definition.
1300
- Impl.registerExternalDecl (constructor);
1301
-
1302
1288
// We're done.
1303
1289
return constructor;
1304
1290
}
@@ -1419,9 +1405,6 @@ createValueConstructor(ClangImporter::Implementation &Impl,
1419
1405
constructor->setBodyTypeCheckedIfPresent ();
1420
1406
}
1421
1407
1422
- // Add this as an external definition.
1423
- Impl.registerExternalDecl (constructor);
1424
-
1425
1408
// We're done.
1426
1409
return constructor;
1427
1410
}
@@ -1930,8 +1913,7 @@ static bool addErrorDomain(NominalTypeDecl *swiftDecl,
1930
1913
getterDecl->setBody (
1931
1914
BraceStmt::create (C, SourceLoc (), {ret}, SourceLoc (), isImplicit));
1932
1915
getterDecl->setBodyTypeCheckedIfPresent ();
1933
-
1934
- importer.registerExternalDecl (getterDecl);
1916
+
1935
1917
return true ;
1936
1918
}
1937
1919
@@ -3080,12 +3062,6 @@ namespace {
3080
3062
}
3081
3063
}
3082
3064
3083
- // Add the type decl to ExternalDefinitions so that we can type-check
3084
- // raw values and SILGen can emit witness tables for derived conformances.
3085
- // FIXME: There might be better ways to do this.
3086
- Impl.registerExternalDecl (result);
3087
- if (errorWrapper)
3088
- Impl.registerExternalDecl (errorWrapper);
3089
3065
return result;
3090
3066
}
3091
3067
@@ -3327,11 +3303,6 @@ namespace {
3327
3303
3328
3304
result->setHasUnreferenceableStorage (hasUnreferenceableStorage);
3329
3305
3330
- // Add the struct decl to ExternalDefinitions so that IRGen can emit
3331
- // metadata for it.
3332
- // FIXME: There might be better ways to do this.
3333
- Impl.registerExternalDecl (result);
3334
-
3335
3306
return result;
3336
3307
}
3337
3308
@@ -3644,14 +3615,6 @@ namespace {
3644
3615
3645
3616
void finishFuncDecl (const clang::FunctionDecl *decl,
3646
3617
AbstractFunctionDecl *result) {
3647
- // Keep track of inline function bodies so that we can generate
3648
- // IR from them using Clang's IR generator.
3649
- if ((decl->isInlined () || decl->hasAttr <clang::AlwaysInlineAttr>() ||
3650
- !decl->isExternallyVisible ()) &&
3651
- decl->hasBody ()) {
3652
- Impl.registerExternalDecl (result);
3653
- }
3654
-
3655
3618
// Set availability.
3656
3619
if (decl->isVariadic ()) {
3657
3620
Impl.markUnavailable (result, " Variadic function is unavailable" );
@@ -3819,9 +3782,6 @@ namespace {
3819
3782
result->getAttrs ().add (new (Impl.SwiftContext )
3820
3783
FinalAttr (/* IsImplicit=*/ true ));
3821
3784
3822
- if (!decl->hasExternalStorage ())
3823
- Impl.registerExternalDecl (result);
3824
-
3825
3785
// If this is a compatibility stub, mark it as such.
3826
3786
if (correctSwiftName)
3827
3787
markAsVariant (result, *correctSwiftName);
@@ -4533,11 +4493,6 @@ namespace {
4533
4493
4534
4494
result->setMemberLoader (&Impl, 0 );
4535
4495
4536
- // Add the protocol decl to ExternalDefinitions so that IRGen can emit
4537
- // metadata for it.
4538
- // FIXME: There might be better ways to do this.
4539
- Impl.registerExternalDecl (result);
4540
-
4541
4496
return result;
4542
4497
}
4543
4498
@@ -5149,7 +5104,6 @@ SwiftDeclConverter::importCFClassType(const clang::TypedefNameDecl *decl,
5149
5104
theClass->setAddedImplicitInitializers (); // suppress all initializers
5150
5105
theClass->setForeignClassKind (ClassDecl::ForeignKind::CFType);
5151
5106
addObjCAttribute (theClass, None);
5152
- Impl.registerExternalDecl (theClass);
5153
5107
5154
5108
if (superclass) {
5155
5109
SmallVector<TypeLoc, 4 > inheritedTypes;
@@ -5438,7 +5392,6 @@ SwiftDeclConverter::importSwiftNewtype(const clang::TypedefNameDecl *decl,
5438
5392
}
5439
5393
5440
5394
Impl.ImportedDecls [{decl->getCanonicalDecl (), getVersion ()}] = structDecl;
5441
- Impl.registerExternalDecl (structDecl);
5442
5395
return structDecl;
5443
5396
}
5444
5397
@@ -6341,9 +6294,6 @@ ConstructorDecl *SwiftDeclConverter::importConstructor(
6341
6294
// If this constructor overrides another constructor, mark it as such.
6342
6295
recordObjCOverride (result);
6343
6296
6344
- // Inform the context that we have external definitions.
6345
- Impl.registerExternalDecl (result);
6346
-
6347
6297
return result;
6348
6298
}
6349
6299
@@ -8400,9 +8350,6 @@ ClangImporter::Implementation::createConstant(Identifier name, DeclContext *dc,
8400
8350
// Set the function up as the getter.
8401
8351
makeComputed (var, func, nullptr );
8402
8352
8403
- // Register this thunk as an external definition.
8404
- registerExternalDecl (func);
8405
-
8406
8353
return var;
8407
8354
}
8408
8355
0 commit comments