lucica28
50c4d3b9b6
replace libdparse in redundant parens check ( #61 )
2024-01-29 16:07:39 +02:00
lucica28
396bedcd10
update dmd and include the API needed for semantic analysis ( #66 )
...
* update dmd and include the API needed for semantic analysis
* update libparse + initial implementation for properly documented public functions
* test
* refactor
* update workflows
* delete unused code
2024-01-29 16:05:33 +02:00
lucica28
8750717321
replace libdparse in backwards range check ( #58 )
2024-01-29 15:38:46 +02:00
lucica28
57601895f8
replace libdparse in builtin properties visitor ( #52 )
2024-01-29 15:34:59 +02:00
lucica28
8467cf3055
replace libdparse in logic precedence visitor ( #54 )
2024-01-29 15:33:05 +02:00
lucica28
e1639b4b10
replace libdparse in auto ref assignment ( #51 )
2024-01-29 15:31:30 +02:00
lucica28
710c184259
replace libparse in opequals without tohash visitor ( #53 )
2024-01-29 15:28:38 +02:00
lucica28
82bc26b7be
replace libdpase in assert without msg visitor ( #50 )
2024-01-29 15:26:14 +02:00
lucica28
18a5a09a23
replace libdparse in local imports visitor ( #45 )
2024-01-29 15:16:16 +02:00
lucica28
1ce09a0cbd
replace libdparse in constructor check ( #43 )
2024-01-29 15:14:31 +02:00
lucica28
7a017e049b
replace libdparse in alias style visitor ( #38 )
2024-01-24 14:43:33 +02:00
lucica28
761778b3f4
replace libdparse in explicitly annotated unittests check ( #44 )
2024-01-24 14:35:27 +02:00
lucica28
dd1ab872c1
replace libdparse in length subtraction visitor ( #42 )
2024-01-24 14:29:46 +02:00
lucica28
1cf2f30c32
replace libdparse in redundant attributes visitor ( #40 )
2024-01-24 14:26:00 +02:00
lucica28
b4884e3a3a
replace libdparse in imports sortedness visitor ( #35 )
...
* replace libdparse in imports sortedness visitor
* minor refactor
2024-01-24 13:53:35 +02:00
lucica28
8f625c2747
replace libparse in incorrect infinite range visitor ( #33 )
2024-01-24 13:50:42 +02:00
lucica28
16b69e503a
replace libparse in final attribute visitor ( #34 )
2024-01-24 13:46:18 +02:00
lucica28
664b9e25d5
replace libdparse in delete check ( #21 )
...
* replace libdparse in delete check
* delete comment
2024-01-24 13:28:29 +02:00
lucica28
34e4073105
replace libdparse in objectconst functionality + unittests integration with dmd ( #17 )
...
* replace libdparse in objectconst functionality + unittests integration with dmd
* updated dmd
* run tests
* use templates
* visit aggregate declaration
* updated dmd
* solve linter seg fault
* get rid of dup + refactor
* fix typo
2024-01-24 13:25:41 +02:00
Lucian Danescu
150643c4d3
Replace libdparse in enum array functionality
2024-01-24 13:14:35 +02:00
WebFreak001
8612841365
fix compilation on old compilers
2023-10-25 08:49:37 +02:00
WebFreak001
42033dcc55
add BaseAnalyzerArguments to keep ctor changes sane
...
also immediately makes tokens a part of it
This struct can for example precompute token indices for line endings
2023-10-25 08:49:37 +02:00
ricardaxel
1e8f1ec9e6
Allow skipping checks with @("nolint(...)") and @nolint("...") ( #936 )
...
Co-authored-by: Axel Ricard <contact@axelricard.fr>
Co-authored-by: WebFreak001 <gh@webfreak.org>
2023-10-13 02:45:59 +02:00
Robert Schadek
b43c8f45cf
Always Check Curly
...
Check that if|else|for|foreach|while|do|try|catch
are always followed by a BlockStatement aka. { }
closer
can not get the test to work
try to get the AutoFix in place
maybe a fix
nicer messages
some formatting
more tinkering
still nothing
autofix work now
AutoFix name
message to message_postfix
2023-09-24 19:35:46 +02:00
WebFreak001
a958f9ac7b
fix unused variable check for unitthreaded checks
...
such as `a.should == b`
2023-07-17 14:41:07 +02:00
WebFreak001
c8262f4220
fix auto_function autofix for `auto ref fn()`
2023-07-17 11:32:16 +02:00
WebFreak001
f22b2e587c
Disable auto_function_check by default
...
Since it may be used to auto-infer function attributes
2023-07-17 11:32:16 +02:00
WebFreak001
5d67707744
more sane parentheses fix for delegates
...
not sure what I was thinking with the initial version
2023-07-13 16:42:36 +02:00
WebFreak001
7601fe65f9
fix diagnostic location for `@UDA auto f() {}`
2023-07-10 22:05:26 +02:00
WebFreak001
c1e051bfba
fix infinite allocating in context formatter
2023-07-10 13:57:27 +02:00
WebFreak001
48db254fb0
fix if scopes and shortened function bodies
2023-07-10 00:52:04 +02:00
WebFreak001
d275361153
fix case/default scopes, fix #913
2023-07-10 00:52:04 +02:00
Jan Jurzitza
fed654441f
fix #916 autofix CLI, add integration test for it ( #917 )
2023-07-09 13:09:21 +02:00
WebFreak001
3345a1953a
improve public auto fix API
2023-07-08 23:09:33 +02:00
WebFreak001
43caad72a8
add CLI API to get autofixes at location
2023-07-08 23:09:33 +02:00
WebFreak001
53c9536332
add startIndex, endIndex support to format string
2023-07-08 23:09:33 +02:00
WebFreak001
4194e6af0c
add `dscanner fix` command
2023-07-08 23:09:33 +02:00
WebFreak001
48cec8a6f4
implement indentation aware autofixes
2023-07-08 23:09:33 +02:00
WebFreak001
93aae57469
add autofix testing API
2023-07-08 23:09:33 +02:00
WebFreak001
f12319d5a8
add autofix whitespace collapsing API
2023-07-08 23:09:33 +02:00
WebFreak001
513b7dafc3
add auto-fix API
2023-07-08 23:09:33 +02:00
Christian Köstlin
35d2cf4177
feature: Provide predefined error format compatible with dmds output
...
an output parser that works with dmd / ldc just works (tm) witha
dscanner as well
2023-07-07 00:15:04 +02:00
WebFreak001
1201a68f66
Only call Win32 API to enable colored output once
2023-07-05 22:41:42 +02:00
WebFreak001
a676bb13fb
fix selective imports
2023-07-02 13:33:11 +02:00
WebFreak001
78f2b5a420
add colored output option
...
also adds a simpler way to invoke D-Scanner for users that uses this new
UI by default: `dscanner lint FILES...`
2023-07-02 13:33:11 +02:00
WebFreak001
146fec75d8
add index and endIndex to JSON formats
2023-06-29 17:43:30 +02:00
WebFreak001
b115a6333a
also add byte indices to diagnostic ranges
...
For tools wanting to read from the source file this makes it much easier
to look up the code.
2023-06-29 17:43:30 +02:00
WebFreak001
bad253bad5
remove unused variables
2023-06-29 14:57:32 +02:00
WebFreak001
83eb9c5c2e
add built-in report formats incl. GitHub Actions
...
use on ourself and enable unused variables test to do first test in CI
2023-06-29 14:57:32 +02:00
WebFreak001
5c2035ff76
add end line/column to warnings
2023-06-29 13:19:36 +02:00
WebFreak001
5a53c538d0
make mismatched args not warn on named arguments
...
makes expressions be assumed as valid argument names
2023-05-23 12:15:52 +02:00
WebFreak001
4b2124e82d
upgrade libdparse to 0.23.0
2023-05-23 12:15:52 +02:00
WebFreak001
93f338a5e7
fix logger warnings, for real this time
...
We should probably add a linter case for this
2023-05-19 23:12:16 +02:00
WebFreak001
f37faf85dd
fix BodyOnDisabledFuncsCheck edge cases
2023-05-09 04:10:43 +02:00
Mai-Lapyst
e2cc6e1ad2
Adds an check for `@disable`d functions that have an body; closes #897
2023-05-09 04:10:43 +02:00
Jan Jurzitza
5f1cf31ee0
hide dsymbol warnings, fix #890 ( #900 )
2023-05-09 03:34:08 +02:00
brianush1
d0c670a415
fix static warnings and add tests for function_attribute_check
2023-05-09 02:19:42 +02:00
brianush1
ba4617efac
add unittest for FunctionAttributeCheck
2023-05-09 02:19:42 +02:00
brianush1
14ba4af4bd
fix #791
2023-05-09 02:19:42 +02:00
Su
9b171c46d2
don't use deprecated properties ( #894 )
2023-02-28 00:48:14 +01:00
WebFreak001
d5d6920502
Add dub.selections.json, upgrade libdparse 0.22.0
...
Note: currently a warning is emitted when building, because dscanner now
depends on libdparse 0.22.0, but dsymbol doesn't support it officially
yet. We just force it with dub.selections.json to build with 0.22.0 for
executable builds.
2023-02-15 12:10:33 +01:00
Zachary Yedidia
3437e30cac
Add unit test
2023-01-31 23:32:52 -08:00
Zachary Yedidia
62297fdf7b
Include aliasName in resolveSymbol
2023-01-31 23:29:25 -08:00
Zachary Yedidia
40235d3f9d
Fix noreturn discard warning ( #887 )
...
Fixes https://github.com/dlang-community/D-Scanner/issues/886
2023-01-31 22:16:48 +01:00
WebFreak001
2220812b96
Moved DSymbol into DCD
2022-10-14 14:30:10 +02:00
WebFreak001
e027965176
fix null pointer access in unused.d
2022-03-07 22:53:04 +01:00
WebFreak001
0316c9d70a
fix libdparse deprecation in new check
2022-02-12 23:04:15 +01:00
WebFreak001
cdf881c103
add cyclomatic complexity check
...
Fix #684
Disabled by default.
2022-02-11 20:17:23 +01:00
WebFreak001
7f93ffaa1f
add test that #499 is fixed
2022-02-02 21:31:28 +01:00
WebFreak001
631791e14d
add tests for shortened function body extensions
...
Remove implementation in unused label (expressions can't have labels)
2022-02-02 21:02:29 +01:00
WebFreak001
a3fe7611a8
implement new ThrowExpression & shortened methods
2022-01-31 18:04:17 +01:00
Shigeki Karita
7c54e445c6
Add max_line_length config
2022-01-21 13:24:35 +01:00
Per Nordlöw
308bdfd1c1
Replace `std.typecons.scoped` with `scope`
2021-08-27 16:49:36 +09:00
Per Nordlöw
41d9682a5f
Bump dsymbol to use branch use-gcallocator
...
Replace deprecated `body` with `do`
Bump dsymbol
Bump dsymbol
2021-08-27 16:49:36 +09:00
WebFreak001
7809598da0
fix if_constraints_indent with broken/null tokens
...
Subtraction from t.line (which is unsigned) caused the while loop
to run nearly infinitely before, starving the system of memory as it
was allocating memory.
fixes #829
2021-05-10 18:28:24 +00:00
Vladimir Panteleev
e61ce45856
Add unused_result check
2020-08-25 06:26:31 +00:00
Hackerpilot
2174832e9f
Fix tabs/spaces
2020-08-06 17:27:16 -07:00
Hackerpilot
3b590c377a
Fix #815
2020-08-06 15:11:04 -07:00
Hackerpilot
4bca597f4b
Update the documentation for the local import rule
2020-06-22 22:18:12 -07:00
Hackerpilot
1bc03367b4
Disable the local imports check by default
2020-06-22 19:01:05 -07:00
andre2007
da64499c52
--reportFile added
2020-04-13 20:47:18 +02:00
MoonlightSentinel
00a0eedad5
Fix issue #794 : False positive for parameter used in __traits(...)
...
This applies the already implemented solution for variables (#790 ) to
parameters by moving the __traits() logic in a new shared superclass.
It's explicitly excluded from UnusedIdentifier because I cannot think
of a good reason to silently allow unused labels.
2020-03-08 02:07:05 +01:00
MoonlightSentinel
4f417b64a1
Fix #788 : Enum value used inside __traits(...) flagged as unused
2020-01-26 19:17:12 +01:00
MoonlightSentinel
be5acfcae8
Fix empty error messages in issue 786
...
The message was assigned to Message.key and hence not printed.
2020-01-04 15:10:58 +01:00
Eugen Wissner
1d476fa39d
Support checkName in errorFormat
2019-09-25 10:13:07 +03:00
Andre Pany
3b6bbad9fe
Added reportFormat sonarQubeGenericIssueData
2019-09-11 12:53:26 +02:00
Eugene Wissner
3b9d608866
Track check name for error messages ( #769 )
...
* Track check name for error messages
* Assert BaseAnalyzer.getName() is implemented
2019-07-09 12:16:25 +02:00
Eugene Wissner
9502af2494
Split unused variable and unused parameter checks ( #768 )
2019-07-02 22:56:52 +02:00
Basile-z
378cbcc6bd
fix #762 - False positive on "unused variable" with side effect ( #763 )
2019-05-29 11:11:03 +02:00
Sebastian Wilzbach
93418e3aa9
Fix #760 - ignore deprecated symbols in the undocumented check
2019-05-14 23:29:53 +02:00
Basile Burg
4499e559f0
final attrib check, prevent using an array to store the protection
2019-02-28 12:09:21 +01:00
Basile Burg
7850f30ec9
fix dscanner warning on non doc decl
2019-02-28 12:01:58 +01:00
BBasile
9ef6d0aec1
fix - adaptation to correct DIP 1009 impl. was incomplete ( #728 )
...
fix - adaptation to correct DIP 1009 impl. was incomplete
merged-on-behalf-of: BBasile <BBasile@users.noreply.github.com>
2018-11-29 09:51:23 +01:00
BBasile
83c89ddc22
fix #721 - disable GC while scanning to prevent GC to dispose some AST members ( #725 )
...
fix #721 - disable GC while scanning to prevent GC to dispose some AST members
merged-on-behalf-of: BBasile <BBasile@users.noreply.github.com>
2018-11-29 08:41:08 +01:00
Basile Burg
8d3dcc55bc
fix #723 - segfault when running D-Scanner master against dparse repo with -S
2018-11-27 14:40:12 +01:00
BBasile
f585c383f1
update to dparse 0.10.x ( #713 )
2018-11-22 22:57:25 +01:00
Basile Burg
aebb5b4a4c
fix #696 - Unused variable fake positive with UFCS
...
Apparently it was a bug not only specific to the UFCS.
Now every use of the member access operator is handled.
2018-09-16 16:58:39 +02:00
The Dlang Bot
ed5bfe7269
Merge pull request #691 from BBasile/dparse-attrib-inloop
...
Update dparse to fix possible infinite loop and adapt to ParameterAttribute
merged-on-behalf-of: BBasile <BBasile@users.noreply.github.com>
2018-08-30 11:52:03 +02:00
Basile Burg
7494c5fb14
Update dparse to fix possible infinite loop and adapt to ParameterAttribute
2018-08-29 18:19:58 +02:00
BBasile
1b503656d4
Set the check for useless init disabled by default
2018-08-22 16:32:40 +02:00