## Tests the case where we fail to import modules from @import
## statements that are part of the expression being run.
#
# REQUIRES: system-darwin
#
# RUN: split-file %s %t/sources
# RUN: %clang_host -g %t/sources/main.m -fmodules -fcxx-modules \
# RUN:             -fmodule-map-file=%t/sources/module.modulemap \
# RUN:             -fmodules-cache-path=%t/ModuleCache -o %t.out
#
# RUN: sed -i '' -e 's/foo\.h/baz\.h/' %t/sources/module.modulemap
#
# RUN: %lldb -x -o "settings set interpreter.stop-command-source-on-error false" \
# RUN:       -s %t/sources/commands.input %t.out -o exit 2>&1 | FileCheck %s

#--- main.m
@import foo;
@import bar;

int main() { __builtin_debugtrap(); }

#--- foo.h
struct foo {};

#--- bar.h
struct bar {};

#--- module.modulemap
module foo {
    header "foo.h"
    export *
}

module bar {
    header "bar.h"
    export *
}

#--- commands.input
run
## Make sure expression fails so the 'note' diagnostics get printed.
expr @import Foo
expr @import Bar
expr @import foo

# CHECK: error: while importing modules:
# CHECK-NEXT: header search couldn't locate module 'Foo'
#
# CHECK: error: while importing modules:
# CHECK-NEXT: header search couldn't locate module 'Bar'
#
# CHECK: expr @import foo
# CHECK: error: while importing modules:
# CHECK-NEXT: couldn't load top-level module foo
## No mention of the previous import errors.
# CHECK-NOT: Foo
# CHECK-NOT: Bar
