mirror of
https://github.com/apple/swift.git
synced 2025-12-21 12:14:44 +01:00
Allow at most one main class per module.
Register valid @UIApplicationMain classes with the enclosing module, and diagnose when we see more than one. Swift SVN r18061
This commit is contained in:
@@ -1074,6 +1074,27 @@ bool Module::isBuiltinModule() const {
|
||||
return this == Ctx.TheBuiltinModule;
|
||||
}
|
||||
|
||||
bool Module::registerMainClass(ClassDecl *mainClass, SourceLoc diagLoc) {
|
||||
if (mainClass == MainClass)
|
||||
return false;
|
||||
|
||||
if (MainClass) {
|
||||
// If we already have a main class, and we haven't diagnosed it, do so now.
|
||||
if (!DiagnosedMultipleMainClasses) {
|
||||
getASTContext().Diags.diagnose(MainClassDiagLoc,
|
||||
diag::attr_UIApplicationMain_multiple);
|
||||
DiagnosedMultipleMainClasses = true;
|
||||
}
|
||||
getASTContext().Diags.diagnose(diagLoc,
|
||||
diag::attr_UIApplicationMain_multiple);
|
||||
return true;
|
||||
}
|
||||
|
||||
MainClass = mainClass;
|
||||
MainClassDiagLoc = diagLoc;
|
||||
return false;
|
||||
}
|
||||
|
||||
bool Module::isSystemModule() const {
|
||||
if (isStdlibModule())
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user