Working through some of the last remaining stdlib/Interpreter test failures, I'm finding that one of the choices that is causing problems is the use of the ClangImporter to import headers in some interesting tests (like unions-and-bitfields).
The problem is that #import
is a keyword that conflicts on Windows as it is traditionally used for TLB (type library) imports for (D)COM. However, clang will treat it as the normal #import
as per ObjC if we change the language to Objective-C rather than C.
The approaches that I see to handle this is:
- always use objective-c as the language irrespective of the platform
- change the importer to use
#include
- change the importer to switch between
#include
and#import
based on whether ObjC interop is enabled
Personally, I think that option 2 is the nicest as it provides the most consistent behaviour, but, I can see it causing some problems with some of the tests.
CC: @jrose