Moving parsing for annot_module_include from ParseTopLevelDecl to
ParseExternalDeclaration does not seem right to me -- we only want to allow
module imports at the top level. (This patch appears to allow them in
namespaces and extern "C" contexts.)


On Mon, Feb 3, 2014 at 4:51 PM, Douglas Gregor <[email protected]> wrote:

>
> On Feb 3, 2014, at 2:32 PM, Ben Langmuir <[email protected]> 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 <[email protected]> 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
> >> [email protected]
> >> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
> >
> > _______________________________________________
> > cfe-commits mailing list
> > [email protected]
> > http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
>
> _______________________________________________
> cfe-commits mailing list
> [email protected]
> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
>
_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to