Sijawusz Pur Rahnama
61ccb030bd
Fix newly found offenses
2023-11-11 19:08:14 +01:00
Sijawusz Pur Rahnama
5cff76071a
No need for such micro-optimizations, LLVM takes care of those
2023-07-02 14:34:25 +02:00
Sijawusz Pur Rahnama
596b0dd9d0
Misc tweaks and refactors
2023-06-14 15:06:24 +02:00
Sijawusz Pur Rahnama
1931a5f4ef
Make skip
a named argument
2023-06-12 23:17:14 +02:00
Sijawusz Pur Rahnama
c09b36799a
Make AST::NodeVisitor::Category
a flag enum
2023-06-12 23:17:14 +02:00
Sijawusz Pur Rahnama
38b6751bc0
Add AST::NodeVisitor::Category
simplifying code a bit
2023-06-12 23:17:14 +02:00
Sijawusz Pur Rahnama
94e31d4685
Do the same in NodeVisitor
2023-06-08 04:28:37 +02:00
Sijawusz Pur Rahnama
e12d72cc88
Set the ASTNode#visibility
as well
2023-06-08 04:28:17 +02:00
Sijawusz Pur Rahnama
7caa47fb6a
Several small refactors
2023-06-08 02:04:30 +02:00
Sijawusz Pur Rahnama
4c740f394a
Implement Scope#visibility
2023-06-08 01:58:58 +02:00
Sijawusz Pur Rahnama
85c3db4d74
Move NODES
constant into its proper namespace
2023-05-31 13:15:01 +02:00
Vitalii Elenhaupt
14a9ec3a75
Incorporate changes for shadowing outer local var
2023-02-04 20:53:41 +02:00
Vitalii Elenhaupt
ddbcf5cb3f
fix(lint): useless assignment for type definition
...
closes #342
2023-02-04 16:57:46 +02:00
Sijawusz Pur Rahnama
bb0c0eeec6
Consider previous_def
implicitly accessing variables, in the same way as super
does
2022-12-15 18:35:16 +01:00
Sijawusz Pur Rahnama
6ffb635dcc
Add Scope#yields?
2022-12-15 18:35:16 +01:00
Sijawusz Pur Rahnama
a8fca61b22
Doc tweaks
2022-12-10 00:20:20 +01:00
Sijawusz Pur Rahnama
134963ece7
Minor details
2022-11-28 11:38:41 +01:00
Sijawusz Pur Rahnama
2c67fe2c3f
Use tuple instead of an array
2022-11-23 03:23:42 +01:00
Sijawusz Pur Rahnama
8b43a40a65
Misc refactors
2022-11-23 03:22:27 +01:00
Sijawusz Pur Rahnama
4500181ddb
Remove redundant blank comment lines
2022-11-23 03:21:15 +01:00
Sijawusz Pur Rahnama
e668ba5bf5
Readability-related refactors
2022-11-14 02:26:52 +01:00
Sijawusz Pur Rahnama
a6ebb48f14
Remove redundant parentheses in if
expressions
...
+ `elsif` -> `case`
2022-11-14 01:52:07 +01:00
Sijawusz Pur Rahnama
2e9ef7fcb2
Reword visit(node)
methods comment in AST::NodeVisitor
2022-04-04 01:35:59 +02:00
Sijawusz Pur Rahnama
a38cfd1661
Refactor AST::ScopeVisitor
similarly to AST::NodeVisitor
2022-04-04 01:35:32 +02:00
Sijawusz Pur Rahnama
3f7ade573a
Add ability to skip some of the nodes in AST::ScopeVisitor
2022-04-04 01:34:34 +02:00
fn ⌃ ⌥
f288cc3c4f
Add Style/GuardClause
rule ( #254 )
2021-12-09 21:33:47 +01:00
Caspian Baska
c49c69ed9f
Early return in CountVisitor if macro node
...
Co-authored-by: Sijawusz Pur Rahnama <sija@sija.pl>
2021-06-06 04:12:56 +10:00
Caspian Baska
0ea6238dc6
Count an exhaustive case
's complexity as 1
2021-06-05 22:31:58 +10:00
Vitalii Elenhaupt
a64f48b543
ShadowingOuterLocalVar while it is not in macro
...
closes #224
2021-04-18 20:55:10 +03:00
Sijawusz Pur Rahnama
7b3c814914
Fix newly found issues
2021-01-28 01:03:48 +01:00
Vitalii Elenhaupt
e9ec91654c
New Rule: Lint/DuplicatedRequire
...
closes https://github.com/crystal-ameba/ameba/issues/176
2021-01-17 22:32:24 +02:00
Sijawusz Pur Rahnama
928a260d51
Remove extraneous blank lines
2021-01-17 18:45:14 +01:00
Sijawusz Pur Rahnama
af5d825015
Followup to #185
2021-01-17 18:45:14 +01:00
Vitalii Elenhaupt
db6b54e63c
New rule: Style/IsANil
2020-03-29 19:45:13 +03:00
Brian J. Cardiff
6259e26457
Comply exhaustive case check
2020-03-27 09:25:07 -03:00
Vitalii Elenhaupt
a6958ab455
New rule: EmptyLoop
2020-03-26 10:27:00 +02:00
Vitalii Elenhaupt
4f185db0a2
New rule: SharedVarInSpawn
...
closes #132
2020-03-25 17:52:20 +02:00
Vitalii Elenhaupt
a5dd07e9e4
New rule: RedundantNext
...
closes #131
2020-03-24 18:06:01 +02:00
Vitalii Elenhaupt
6b56c87e78
Shadowing via short instance variable syntax
...
closes #122
2019-11-11 15:51:09 +02:00
Vitalii Elenhaupt
677c75716f
Typeof scope
2019-10-27 21:22:33 +02:00
Vitalii Elenhaupt
94e1d4567a
Properly report performance rules in macros
...
closes #102
2019-05-05 18:05:08 +03:00
Vitalii Elenhaupt
c95ea297bd
Stop calculating cyclomatic complexity for methods which have Macro conditions ( #99 )
2019-03-31 20:27:20 +03:00
Sijawusz Pur Rahnama
e8a68a80d5
Fix several misspellings ( #94 )
2019-02-23 07:06:28 +02:00
Hannes Käufler
e850bff60f
Hk cyclomatic complexity ( #92 )
...
* Proof of concept for cyclomatic complexity
* Enable configurability of rule
* Use the same nodes to increment the complexity as rubocop
* Fix typo in test description
* Properly indent code and simplify macro
* Move metric into metrics
* Cover a violation supressed by increased threshold
* Extract visitor into its own file
* Document cyclomatic complexity rule and visitor
* Refactor specs to use a macro
* Indent code inside macro
* Replace array with tuple for string formatting.
`Tuple` is stack based, whereas `Array` is allocated on the heap increasing GC pressure.
* Fix formatting
* Enable cyclomatic complexity rule by default
2019-02-16 21:03:44 +02:00
Vitalii Elenhaupt
60ce034f1b
UnusedArgument: fix crystal upgrade regression
2018-12-12 22:21:33 +02:00
V. Elenhaupt
0fd5890738
Extend UnreachableCode rule: handle control flow ( #83 )
2018-11-22 10:38:32 +02:00
Vitalii Elenhaupt
eca0f3f350
Handle raise, exit, abort in unreachable code
2018-11-11 20:33:48 +02:00
Vitalii Elenhaupt
67d76116f7
Basic implementation of UnreachableCode rule
2018-11-05 21:39:27 +02:00
V. Elenhaupt
cb5f802012
Correctly process record declaration at a top level ( #78 )
2018-09-07 00:47:02 +03:00
Vitalii Elenhaupt
04c7300964
Handle type declarations in scopes
...
closes #66
2018-06-23 08:48:13 +03:00