This looks awesome. Regarding the Array parameter issue (which I'm really 
glad to see in the linter; this issue really tripped me up when learning 
Julia), if https://github.com/JuliaLang/julia/issues/6984 ever finds a 
resolution, it would be great to suggest that new syntax in the lint 
message. Then if the linter becomes common-place, beginners that have never 
heard of type variance will have a path to understanding.

On Sunday, September 14, 2014 1:38:50 AM UTC-4, Tony Fong wrote:
>
> That's a good question. They can be used together, obviously. I can easily 
> speak for Lint. The key trade-off made in Lint is that it does not strive 
> for very in-depth type analysis. The focus is finding dodgy AST, where it 
> is located in the source file, and with a bit of explanation around issues. 
> The analyses are done recursively in a very small neighborhood around each 
> node in the AST, although the locality issue has improved somewhat with the 
> new type-tracking ability. The "type guessing and tracking" could leverage 
> Typecheck.jl, only possible since about last week (with the new features), 
> and it's a very exciting prospect.
>
> Lint already provides functionality to return an array of lint messages 
> (from a file, a code snippet, or a module), so it could be used in IDE 
> integration I suppose.
>
> Tony
>
> On Sunday, September 14, 2014 10:08:09 AM UTC+7, Spencer Russell wrote:
>>
>> Any comments on how Lint.jl and @astrieanna's also-awesome TypeCheck.jl 
>> relate? Are you two working together, or are there different use cases for 
>> the two libraries?
>>
>>
>> peace,
>> s
>>  
>> On Sat, Sep 13, 2014 at 3:34 PM, Tony Fong <tony.h...@gmail.com> wrote:
>>
>>> Fellow Julians,
>>>
>>> I think it is time to post an update on Lint.jl 
>>> <https://github.com/tonyhffong/Lint.jl>, as it has improved quite a bit 
>>> from the initial version I started about 3 months ago.
>>>
>>> Notable new features
>>>
>>>    - Local variable type tracking, which enables a range of features, 
>>>    such as
>>>       - Variable type stability warning within a function scope.
>>>       - Incompatibility between type assertion and assignment
>>>       - Omission of returning the constructed object in a type 
>>>       constructor
>>>       - Check the call signature of a selected set of methods with 
>>>       collection (push!, append!, etc.)
>>>    - More function checks, such as
>>>       - repeated arguments
>>>       - wrong signatures, e.g. f( x::Array{Number,1} )
>>>       - Mispelled constructor (calls new but the function name doesn't 
>>>       match the enclosing type)
>>>    - Ability to silence lint warning via lintpragma() function, e.g.
>>>       - lintpragma( "Ignore unstable type variable [variable name]" )
>>>       - lintpragma( "Ignore Unused [variable name]" )
>>>       
>>> Also, there is now quite a range of test scripts showing sample codes 
>>> with lint problems, so it's easy to grep your own lint warnings in that 
>>> folder and see a distilled version of the issue.
>>>
>>> Again, please let me know about gaps and false positives.
>>>
>>> Tony
>>>
>>
>>

Reply via email to