Commit Graph

347 Commits

Author SHA1 Message Date
Jeroen Engels
d2c37dd489 Fix typo in test failure messages 2020-05-14 20:45:16 +02:00
Jeroen Engels
06564b9cc1 Rename ErrorMessage to FailureMessage 2020-05-14 20:45:16 +02:00
Jeroen Engels
bd4377f106 Fix files not being ignored correctly in Windows 2020-04-29 19:32:06 +02:00
Jeroen Engels
d0b9cb16f7 Remove Review.Scope 2020-04-21 23:02:26 +02:00
Jeroen Engels
33c85462ed Backport work from review packages and elm-review-scope 2020-04-21 23:01:47 +02:00
Jeroen Engels
418a50e183 Backport work from review packages 2020-04-20 23:11:53 +02:00
Jeroen Engels
2d42e89092 Backport work from review packages 2020-04-08 18:36:56 +02:00
Jeroen Engels
1fbf67bddb Backport work from review-common 2020-04-08 00:19:25 +02:00
Jeroen Engels
ddf76dcba9 Backport work from review packages 2020-04-07 23:25:35 +02:00
Jeroen Engels
1d91332a68 Remove duplicate information in NoInvalidLicense 2020-04-06 19:13:13 +02:00
Jeroen Engels
2070a15ada Backport work from review-simplification 2020-04-06 17:18:56 +02:00
Jeroen Engels
4f2500c9c8 Backport work from review-simplification 2020-04-05 09:57:34 +02:00
Jeroen Engels
236da80392 Backport work from NoDebug 2020-04-05 09:47:59 +02:00
Jeroen Engels
9ce54258a6 Remove references to withFixes 2020-04-05 09:25:17 +02:00
Jeroen Engels
1f38de974a Backport work from NoUnused 2020-04-04 15:56:40 +02:00
Jeroen Engels
f96b38160b Improve how fixes are applied 2020-04-04 14:29:40 +02:00
Jeroen Engels
7716c9d2c9 Remove Rule.withFixes function 2020-04-04 12:58:26 +02:00
Jeroen Engels
fdca981cc5 Add Documentation rules like they are in jfmengels/review-documentation 2020-04-04 12:35:29 +02:00
Jeroen Engels
b478d2d374 Add autofix for Documentation.ReadmeLinksPointToCurrentVersion 2020-04-04 12:35:29 +02:00
Jeroen Engels
a932f65fe9 Add Documentation.ReadmeLinksPointToCurrentVersion rule 2020-04-04 12:35:29 +02:00
Jeroen Engels
1143afeb31 Re-allow README to be automatically fixed 2020-04-04 12:35:29 +02:00
Jeroen Engels
8637b6050e Move misc rules into a separate folder 2020-04-03 23:00:51 +02:00
Jeroen Engels
30eabfde39 Reorganize test files for the core internals 2020-04-03 16:19:24 +02:00
Jeroen Engels
ec4044826b Re-organize test rules 2020-04-03 16:19:24 +02:00
Jeroen Engels
19f35f835f Move test rules into tests/ 2020-04-03 16:19:24 +02:00
Jeroen Engels
60106d7958 Add NoUnused rules like they are in jfmengels/review-unused 2020-04-03 16:19:24 +02:00
Jeroen Engels
02d7665e91 Add NoDebug rules like they are in jfmengels/review-debug 2020-04-03 16:19:24 +02:00
Jeroen Engels
61aaf0f873 Give less useless details in NoUnused rules 2020-04-01 22:40:23 +02:00
Jeroen Engels
0f25a734e5 Change the order of Scope.realModuleName arguments 2020-04-01 20:13:45 +02:00
Jeroen Engels
402eb6f813 Update NoUnusedVariable 2020-04-01 20:13:45 +02:00
Jeroen Engels
143ecb9618 Rename realFunctionOrType by realModuleName 2020-04-01 20:13:45 +02:00
Jeroen Engels
9328872aa6 Rename Scope2 to Review.Scope 2020-04-01 20:13:45 +02:00
Jeroen Engels
baafd04810 Fix prelude loading in Scope 2020-04-01 20:13:45 +02:00
Jeroen Engels
69c6f4e515 Use Scope2 instead of Scope 2020-04-01 20:13:45 +02:00
Jeroen Engels
ab360b6db1 Add phantom type variable to Error in documentation examples 2020-04-01 20:13:45 +02:00
Jeroen Engels
5dec76b06c Prevent use of error in project visitors 2020-04-01 20:13:45 +02:00
Jeroen Engels
31cd0c6691 Add phantom type variable to Error in other files than Review.Rule 2020-04-01 20:13:45 +02:00
Jeroen Engels
1bd923cd5f Fix wrong error message. Thanks Anton Komissarov! 2020-03-23 20:42:29 +01:00
Jeroen Engels
023bbd60b5 Rename Project.withReadme to Project.addReadme 2020-03-20 19:06:09 +01:00
Jeroen Engels
6f73e42b9a Rename Project.withDependency and Project.withElmJson to Project.add* 2020-03-19 23:50:41 +01:00
Jeroen Engels
160cea7323 Remove module visitors for rules that didn't need them 2020-03-19 19:35:45 +01:00
Jeroen Engels
3077047e63 Make Scope add all visitors at once 2020-03-19 19:28:01 +01:00
Jeroen Engels
f076643150 Remove context and visitor argument for newProjectRuleSchema 2020-03-19 19:21:49 +01:00
Jeroen Engels
ce7c6b7021 Move initial project context to an argument of Rule.newProjectRuleSchema 2020-03-19 19:03:12 +01:00
Jeroen Engels
3b2449af08 Allow to expect for README errors in tests 2020-03-18 23:25:56 +01:00
Jeroen Engels
8273322832 Allow elm.json visitors to report errors in project rules 2020-03-18 23:08:06 +01:00
Jeroen Engels
7c76d8947a Add README support to Review.Project 2020-03-18 21:01:12 +01:00
Jeroen Engels
4263f35db9 Add dummy rule that will look at the README 2020-03-18 20:32:31 +01:00
Jeroen Engels
c619e2c484 Improve the range for NoTodoComment 2020-03-18 17:35:11 +01:00
Jeroen Engels
8013011d1a Handle phantom types outside of the module 2020-03-15 22:53:45 +01:00
Jeroen Engels
68eda525b5 Handle imports from other modules 2020-03-15 14:12:22 +01:00
Jeroen Engels
abcd73f0e4 Mark custom types... 2020-03-14 21:13:23 +01:00
Jeroen Engels
36b71557da WIP Mark custom type constructors from other modules as used. 2020-03-12 19:19:06 +01:00
Jeroen Engels
ad2f929d7e Report custom type constructors that are exposed 2020-03-12 17:46:51 +01:00
Jeroen Engels
36a3478828 NoUnused.CustomTypeConstructors: Report unused exposed type constructors 2020-03-12 17:23:00 +01:00
Jeroen Engels
4117baf838 Rename NoUnused.CustomTypeConstructors temporarily 2020-03-12 17:05:36 +01:00
Jeroen Engels
ce1c059d4c NoUnused.CustomTypeConstructors: Transform into a project rule 2020-03-12 16:59:14 +01:00
Jeroen Engels
b2fd92f529 NoUnused.CustomTypeConstructors: Prepare looking at other modules 2020-03-12 16:50:03 +01:00
Jeroen Engels
ce4febc1ac Support phantom types in NoUnused.CustomTypeConstructors 2020-03-11 17:51:09 +01:00
Jeroen Engels
c67aa1321c WIP: Don't report custom type constructors used as phantom types 2020-03-09 22:42:16 +01:00
Jeroen Engels
e438da283d Copy over NoUnused.CustomTypeConstructors temporarily 2020-03-09 21:21:38 +01:00
Jeroen Engels
c141fdb1ae Rename module rule's phantom fields to canCollectProjectData 2020-03-08 00:54:18 +01:00
Jeroen Engels
0d33ab05e7 Improve the error message when Review.Test.runOnModules is given an empty list 2020-03-07 20:11:07 +01:00
Jeroen Engels
801fae798a Remove version from dependency data 2020-03-07 19:57:16 +01:00
Jeroen Engels
37981b65db Make Dependencies opaque 2020-03-07 18:38:39 +01:00
Jeroen Engels
ec326af739 Write NoDebugTodoOrToString rule 2020-03-07 16:09:35 +01:00
Jeroen Engels
8f1ec1dd3a Write NoDebugLog rule 2020-03-07 16:09:35 +01:00
Jeroen Engels
5cfd68fb6b Rename withModuleDependenciesVisitor to withDependenciesModuleVisitor 2020-03-02 22:53:37 +01:00
Jeroen Engels
c09c46e4eb Rename withProjectElmJsonVisitor to withElmJsonProjectVisitor 2020-03-02 22:52:31 +01:00
Jeroen Engels
8406c29fd3 Rename withModuleElmJsonVisitor to withElmJsonModuleVisitor 2020-03-02 22:51:25 +01:00
Jeroen Engels
0b0b6d1b85 Use "List nothing" instead of "List Error" where possible 2020-02-28 17:11:15 +01:00
Jeroen Engels
d7f645241d Continue documentation for project rules 2020-02-27 19:19:33 +01:00
Jeroen Engels
fbcc11d6a9 Simplify Scope by not having a setter and getter 2020-02-16 23:29:11 +01:00
Jeroen Engels
c2c53fdbe6 Rename Rule.FileKey to Rule.ModuleKey 2020-02-16 21:54:05 +01:00
Jeroen Engels
382a6c8604 Add NoInvalidLicense 2020-02-16 21:40:59 +01:00
Jeroen Engels
c652a24d48 Store more information about the project's dependencies 2020-02-16 21:40:59 +01:00
Jeroen Engels
a91d66ea60 Add Review.Test.expectErrorsForElmJson 2020-02-16 16:56:33 +01:00
Jeroen Engels
0f39773e75 Change how dependencies are stored, and add NoUnused.Dependencies rule 2020-02-16 16:56:33 +01:00
Jeroen Engels
6bfc9f0757 Remove unused elements in tests 2020-02-16 16:56:19 +01:00
Jeroen Engels
24723bf066 Make it possible to report errors in the elm.json file 2020-02-16 16:56:19 +01:00
Jeroen Engels
f28b7698d7 Give a nicer error message when under is passed empty 2020-02-11 18:47:28 +01:00
Jeroen Engels
b72326085b Give a nicer error message in tests when the location could not be found 2020-02-11 18:12:51 +01:00
Jeroen Engels
e00ab39cd7 Fail tests if there are unknown module names in the expected errors list for expectErrorsForModules 2020-02-11 17:46:06 +01:00
Jeroen Engels
ac0ec7fe34 Rename traversingImportedModulesFirst to withContextFromImportedModules 2020-02-10 23:18:09 +01:00
Jeroen Engels
89a3a3d1b4 Rename withDependenciesVisitor to withModuleDependenciesVisitor 2020-01-27 17:18:06 +01:00
Jeroen Engels
0cada05fe3 Rename withElmJsonVisitor to withModuleElmJsonVisitor 2020-01-27 17:18:06 +01:00
Jeroen Engels
66bf74baac Rename withFinalEvaluation to withFinalModuleEvaluation 2020-01-26 13:28:57 +01:00
Jeroen Engels
ca4515ed2e More "global" to "project" renaming 2020-01-26 13:25:09 +01:00
Jeroen Engels
35c6e53664 Rename fromModuleToGlobal -> fromModuleToProject and fromGlobalToModule -> fromProjectToModule 2020-01-26 13:19:46 +01:00
Jeroen Engels
d2f2ffa2cd Rename Multi/Single to Project/Module 2020-01-20 08:34:52 +01:00
Jeroen Engels
d397c57189 Remove withInitialContext and change the rule schema's phantom types 2020-01-20 08:34:52 +01:00
Jeroen Engels
a2a5831e0b Explain in which module we are getting an unexpected test result 2020-01-15 16:35:03 +01:00
Jeroen Engels
d7d49501e1 Replace "Never" phantom types by record types 2020-01-15 16:35:03 +01:00
Jeroen Engels
eee29d7963 NoUnusedExports: Do not report tests or ReviewConfig.config 2020-01-15 16:35:03 +01:00
Jeroen Engels
691a22e5a7 NoUnusedExports: Mark types used in type alias and custom type arguments as used 2020-01-15 16:35:03 +01:00
Jeroen Engels
b654daa301 Remove unused code and dependencies 2020-01-15 09:54:26 +01:00
Jeroen Engels
acd63f22dd NoUnusedExports: Report unused types 2020-01-14 12:50:07 +01:00
Jeroen Engels
511db00e29 NoUnusedExports: Do not report elements that are not defined 2020-01-14 09:50:13 +01:00
Jeroen Engels
251bca2c12 Use Scope in NoUnusedExports to know about the exports from other modules 2020-01-14 09:50:13 +01:00
Jeroen Engels
c21fbff07e NoUnusedExports: Don't report used functions or values 2020-01-14 09:50:13 +01:00
Jeroen Engels
56e766ad62 Register type constructors from visited modules in Scope 2020-01-14 09:50:13 +01:00
Jeroen Engels
061a950679 Register types from visited modules in Scope 2020-01-14 09:50:13 +01:00
Jeroen Engels
6ca138db11 Register exposes values only if they are exposed 2020-01-14 09:50:13 +01:00
Jeroen Engels
0362f5b3e3 Register values from visited modules in Scope 2020-01-14 09:50:13 +01:00
Jeroen Engels
25601e6b24 Rework Scope to work for multi file rules 2020-01-14 09:50:13 +01:00
Jeroen Engels
13d845db25 Copy Scope 2020-01-14 09:50:13 +01:00
Jeroen Engels
dbf56e1e65 Add NoUnusedExports rule 2020-01-14 09:50:13 +01:00
Jeroen Engels
c2ea2f8136 Rename runMulti* to runOnModules* 2020-01-05 19:35:41 +01:00
Jeroen Engels
3bd94e4127 Replace expectErrorsForFiles by expectErrorsForModules 2020-01-05 18:44:16 +01:00
Jeroen Engels
c388770501 Have the tests explain which source code failed to parse when there are multiple 2020-01-05 11:04:20 +01:00
Jeroen Engels
a674ee4763 Do not consider a package module used when it contains a main function 2020-01-04 18:34:12 +01:00
Jeroen Engels
c3759a182d Add missing tests for NoUnusedModules 2020-01-04 15:12:00 +01:00
Jeroen Engels
6b371bf569 Fail tests when there are duplicate module names 2020-01-04 14:21:28 +01:00
Jeroen Engels
7b786d9a2d Add error message when the number of lists of errors is unexpected 2020-01-04 12:40:11 +01:00
Jeroen Engels
8fa9ab49a1 Add functions to be able to test multi rules 2020-01-03 17:12:43 +01:00
Jeroen Engels
6c7d2580cd Set the correct VariableType for ports 2019-12-07 15:29:20 +01:00
Jeroen Engels
fe7b3da438 Make scope understand case..of expressions 2019-11-27 22:30:01 +01:00
Jeroen Engels
4ad1d33d41 Make scope understand parameters 2019-11-27 00:17:14 +01:00
Jeroen Engels
581b77fd17 Make Scope understand exposing(Foo(..)) 2019-11-24 20:29:05 +01:00
Jeroen Engels
45861e3de7 Rename setter and getter fields for scope 2019-11-24 20:28:41 +01:00
Jeroen Engels
b8b6c6758c Make scope understand the elm/core prelude 2019-11-24 20:28:41 +01:00
Jeroen Engels
f6b5b0c4c3 Add tests for Scope 2019-11-24 20:28:41 +01:00
Jeroen Engels
a7c4b86a12 Push a new scope when entering a let..in block 2019-11-23 20:22:42 +01:00
Jeroen Engels
688eb3a1d1 Add test to make sure visitors are called in the expected order 2019-11-23 20:22:42 +01:00
Jeroen Engels
97d45987bd Call multiple declaration and expression visitors in reverse order on exit 2019-11-23 20:22:42 +01:00
Jeroen Engels
28e9dfc401 Make scope register top level variables 2019-11-22 00:00:13 +01:00
Jeroen Engels
0a9a4d8853 Make Scope understand exposing (..) 2019-11-20 11:16:37 +01:00
Jeroen Engels
75bb616686 Make Scope understand the exposing part when importing a module 2019-11-20 09:48:57 +01:00
Jeroen Engels
fad39c1397 Start working on a scope module
This module should help to write rules that detect the use of a given
function.
2019-11-20 09:48:57 +01:00
Jeroen Engels
5977bb06f2 Remove the Review.Util module 2019-09-29 10:51:29 +02:00
Jeroen Engels
8e48d01e66 Change the project's API from Lint* to Review* 2019-09-28 23:47:02 +02:00
Jeroen Engels
3645acb99e Reword the error message in the case of a missing fixes test failure 2019-09-17 19:56:15 +02:00
Jeroen Engels
b359fb3023 Add Lint.Rule.withDeclarationListVisitor function 2019-09-15 01:29:26 +02:00
Jeroen Engels
bf1f1d2380 Fix "across" typo accross the whole project 2019-08-29 22:45:28 +02:00
Jeroen Engels
011a205b13 Remove rules from the package 2019-08-28 08:36:24 +02:00
Jeroen Engels
ddaea22eab Move range manipulations fns out of Lint.Fix and into the rule that uses them 2019-08-22 19:48:46 +02:00
Jeroen Engels
5433526b2f Explain why we require providing the fix result in test error messages 2019-08-22 11:57:14 +02:00
Jeroen Engels
2c38878a6d Autofix all unused variables in NoUnusedVariables 2019-08-19 16:13:45 +02:00
Jeroen Engels
8fa510458e Fail applying a fix if ranges of the fixes overlap 2019-08-18 23:32:30 +02:00
Jeroen Engels
50f631c47c Add commented out tests for rangeUpUntil 2019-08-09 19:16:23 +02:00
Jeroen Engels
55fb6b71bb Improve NoUnusedVariables handles deleting the last declaration in a let in 2019-08-09 19:07:06 +02:00
Jeroen Engels
3b93133ada Fail applying a fix if the result becomes unparsable 2019-08-08 22:01:44 +02:00
Jeroen Engels
b7bbaff013 Fail the test with a helpful error message when fix does not change anything 2019-08-08 22:01:44 +02:00
Jeroen Engels
919467fee6 Add a way to check in tests that the fixed code is correct 2019-08-06 09:31:57 +02:00
Jeroen Engels
4eb024ef2e Make Lint.Fix.fix return a value that shows whether it was successful 2019-08-06 09:31:57 +02:00
Jeroen Engels
9e6160f8a6 Add ability to fix something on multiple lines 2019-08-06 09:31:57 +02:00
Jeroen Engels
76f0a8aaf2 Add tests for applying multiple fixes on a file 2019-08-06 09:31:57 +02:00
Jeroen Engels
330b1a1a7b Add tests for applying fixes on a single line 2019-08-06 09:31:57 +02:00
Jeroen Engels
d20396773e Move mergeRanges to Lint.Fix
Also add tests and documentation
2019-08-04 11:43:08 +02:00
Jeroen Engels
00215346ca Fix a bunch of typos about "it's" 2019-07-28 17:37:21 +02:00