Prevent module import inside @implementation
Douglas Gregor
dgregor at apple.com
Mon Feb 3 16:51:09 PST 2014
On Feb 3, 2014, at 2:32 PM, Ben Langmuir <blangmuir at apple.com> wrote:
> Based on a suggestion from Jordan I’ve dropped the extra note, which will be on the same location anyway, and added that information into the error diagnostic. I would have liked to say "treating #include ...” instead of "treating directive …", but after the preprocessor/lexer this information is lost and I don’t see a nice way to pass it on to the parser.
There’s an ugly way to pass it on to the parser… you have a couple low bits in the token’s annotation value to record #include vs. #import vs. #include_next.
+def err_import_in_impl : Error<
+ "%select{|treating directive as a module import; }0module import not allowed "
+ "within @implementation">;
The diagnostic is pretty wordy when the import comes from a directive. Perhaps this?
module import (due to #include) not allowed within @implementation
- Doug
> Ben
>
> <import-in-impl.patch>
>
>
> On Feb 3, 2014, at 10:19 AM, Ben Langmuir <blangmuir at apple.com> wrote:
>
>> This patch disallows module import inside @implementaiton, and also moves the parsing for implicit imports (e.g. #import) into the same function as explicit imports (@import). Previously we silently accepted explicit imports in @implementation, but gave a missing ‘@end’ error on implicit imports.
>>
>> Ben
>>
>> <import-in-impl.patch>_______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
> _______________________________________________
> cfe-commits mailing list
> cfe-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list