Hi Lukas,

Thank you for quick response.

> Will you make your port publicly available to the community?
I pushed sources to https://github.com/kxbmap/jooq-warts
and will publish first version in few days.

Regards,
Tsukasa Kitachi

2018年10月12日金曜日 0時09分08秒 UTC+9 Lukas Eder:
>
> Hi Tsukasa,
>
> Thank you very much for your suggestions, and for working with the 
> jOOQ-checker module. Will you make your port publicly available to the 
> community?
>
> I agree with 1). That appears to be a bug / leftover from early days of 
> the checker implementation, when @Require annotations would further 
> restrict each other over various scopes. This implementation (or at least 
> the specs) have been replaced by the current specification where only the 
> inner-most @Require annotation counts. In case of which, if the list of 
> required SQLDialects is empty, we should type check the jOOQ code, not 
> reject it. I've fixed this for jOOQ 3.12 and will backport to 3.11.6 and 
> 3.10.9:
> https://github.com/jOOQ/jOOQ/issues/7926
>
> Regarding 2), Indeed, they should both have the same behaviour. @Support 
> should expand to @Support(SQLDialect.values()), conceptually. I've created 
> another issue, which will be fixed for jOOQ 3.12 and will backport to 
> 3.11.6 and 3.10.9:
> https://github.com/jOOQ/jOOQ/issues/7929
>
> Thanks again!
> Lukas
>
> On Wed, Oct 10, 2018 at 5:03 PM Tsukasa Kitachi <[email protected] 
> <javascript:>> wrote:
>
>> Hello, 
>>
>> I'm porting jOOQ-checker to WartRemover that is Scala linter.
>> I have some suggestions to checker implementations.
>>
>> 1) The following code doesn't compile if SQLDialectChecker is enabled.
>>
>> @Allow(POSTGRES)
>> public class AllowPostgres {
>>     public void doesntCompile() {
>>         DSL.cube(DSL.inline(1));
>>     }
>> }
>>
>> Error message is "No jOOQ API usage is allowed at current scope due to 
>> conflicting @Require specification".
>> This is from these lines:
>>
>> https://github.com/jOOQ/jOOQ/blob/a8690a2b46a3eb056714f2ab2d14561570d1e8e6/jOOQ-checker/src/main/java/org/jooq/checker/SQLDialectChecker.java#L112-L113
>>
>> This seems to be unnecessary check.
>>
>> 2) Empty (no-args) @Support means all dialects are supported, right?
>> So, next two methods have same semantics.
>>
>> @Support
>> static void supportEmpty() {
>> }
>>
>> @Support({SQL99, DEFAULT, CUBRID, ...And all of other dialect 
>> families...})
>> static void supportAll() {
>> }
>>
>> But use these methods in no @Allow scope, then result is different.
>>
>> void notAllowedAnything() {
>>     supportEmpty(); // compiles
>>     supportAll();   // error: No jOOQ API usage is allowed at current 
>> scope. Use @Allow.
>> }
>>
>> This is confusing. I think that both should have same behavior. (both to 
>> be error is better.)
>>
>> What do you think?
>>
>> Regards,
>> Tsukasa Kitachi
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "jOOQ User Group" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>

-- 
You received this message because you are subscribed to the Google Groups "jOOQ 
User Group" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to