[Frontend] Load standard libarary in CompilerInstance::setup

Instead of checking that the stdlib can be loaded in a variety of places, check it when setting up the compiler instance. This required a couple more checks to avoid loading the stdlib in cases where it’s not needed.

To be able to differentiate stdlib loading failures from other setup errors, make `CompilerInstance::setup` return an error message on failure via an inout parameter. Consume that error on the call side, replacing a previous, more generic error message, adding error handling where appropriate or ignoring the error message, depending on the context.
This commit is contained in:
Alex Hoppen
2021-12-13 15:32:08 +01:00
parent 5a6341bd65
commit 63c31033fc
29 changed files with 224 additions and 105 deletions

View File

@@ -313,6 +313,9 @@ struct ModuleInterfaceLoaderOptions {
case FrontendOptions::ActionType::TypecheckModuleFromInterface:
requestedAction = FrontendOptions::ActionType::Typecheck;
break;
case FrontendOptions::ActionType::ScanDependencies:
requestedAction = Opts.RequestedAction;
break;
default:
requestedAction = FrontendOptions::ActionType::EmitModuleOnly;
break;