├── .github ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ └── bug_report.md └── workflows │ ├── lockdown.yml │ └── nim.yml ├── CHANGELOG.md ├── CONTRIBUTING.md ├── README.md ├── config.nims ├── config └── nimalyzer.cfg ├── doc ├── available_rules.rst ├── configuration.rst └── index.rst ├── license.txt ├── nimalyzer.nimble ├── src ├── config.nim ├── main.nim ├── nimalyzer.nim ├── rules.nim ├── rules │ ├── assignments.nim │ ├── casestatements.nim │ ├── comments.nim │ ├── complexity.nim │ ├── forstatements.nim │ ├── hasdoc.nim │ ├── hasentity.nim │ ├── haspragma.nim │ ├── ifstatements.nim │ ├── localhides.nim │ ├── namedparams.nim │ ├── namingconv.nim │ ├── objects.nim │ ├── params.nim │ ├── ranges.nim │ ├── trystatements.nim │ ├── vardeclared.nim │ └── varuplevel.nim └── utils.nim ├── tests ├── assignments.nim ├── casestatements.nim ├── comments.nim ├── complexity.nim ├── config.nim ├── forstatements.nim ├── hasdoc.nim ├── hasentity.nim ├── haspragma.nim ├── ifstatements.nim ├── invalid │ ├── assignments.nim │ ├── casestatements.nim │ ├── comments.nim │ ├── complexity.nim │ ├── forstatements.nim │ ├── hasdoc.nim │ ├── hasentity.nim │ ├── haspragma.nim │ ├── ifmaxstatements.nim │ ├── ifstatements.nim │ ├── localhides.nim │ ├── namedparams.nim │ ├── namingconv.nim │ ├── objects.nim │ ├── params.nim │ ├── ranges.nim │ ├── tryemptystatements.nim │ ├── trynamestatements.nim │ ├── vardeclared.nim │ ├── vardeclaredtypes.nim │ └── varuplevel.nim ├── localhides.nim ├── namedparams.nim ├── namingconv.nim ├── objects.nim ├── params.nim ├── ranges.nim ├── rules.nim ├── trystatements.nim ├── utils.nim ├── utils │ ├── doctemplate.txt │ └── helpers.nim ├── valid │ ├── assignments.nim │ ├── casestatements.nim │ ├── comments.nim │ ├── complexity.nim │ ├── forstatements.nim │ ├── hasdoc.nim │ ├── hasentity.nim │ ├── haspragma.nim │ ├── ifmaxstatements.nim │ ├── ifstatements.nim │ ├── localhides.nim │ ├── namedparams.nim │ ├── namingconv.nim │ ├── objects.nim │ ├── params.nim │ ├── ranges.nim │ ├── tryemptystatements.nim │ ├── trynamestatements.nim │ ├── vardeclared.nim │ ├── vardeclaredtypes.nim │ └── varuplevel.nim ├── vardeclared.nim └── varuplevel.nim └── tools ├── README.md ├── gendoc.nim ├── genrule.nim └── rule.txt /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/.github/CONTRIBUTING.md -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/.github/FUNDING.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/.github/ISSUE_TEMPLATE/bug_report.md -------------------------------------------------------------------------------- /.github/workflows/lockdown.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/.github/workflows/lockdown.yml -------------------------------------------------------------------------------- /.github/workflows/nim.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/.github/workflows/nim.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/CHANGELOG.md -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/CONTRIBUTING.md -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/README.md -------------------------------------------------------------------------------- /config.nims: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/config.nims -------------------------------------------------------------------------------- /config/nimalyzer.cfg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/config/nimalyzer.cfg -------------------------------------------------------------------------------- /doc/available_rules.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/doc/available_rules.rst -------------------------------------------------------------------------------- /doc/configuration.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/doc/configuration.rst -------------------------------------------------------------------------------- /doc/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/doc/index.rst -------------------------------------------------------------------------------- /license.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/license.txt -------------------------------------------------------------------------------- /nimalyzer.nimble: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/nimalyzer.nimble -------------------------------------------------------------------------------- /src/config.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/config.nim -------------------------------------------------------------------------------- /src/main.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/main.nim -------------------------------------------------------------------------------- /src/nimalyzer.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/nimalyzer.nim -------------------------------------------------------------------------------- /src/rules.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules.nim -------------------------------------------------------------------------------- /src/rules/assignments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/assignments.nim -------------------------------------------------------------------------------- /src/rules/casestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/casestatements.nim -------------------------------------------------------------------------------- /src/rules/comments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/comments.nim -------------------------------------------------------------------------------- /src/rules/complexity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/complexity.nim -------------------------------------------------------------------------------- /src/rules/forstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/forstatements.nim -------------------------------------------------------------------------------- /src/rules/hasdoc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/hasdoc.nim -------------------------------------------------------------------------------- /src/rules/hasentity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/hasentity.nim -------------------------------------------------------------------------------- /src/rules/haspragma.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/haspragma.nim -------------------------------------------------------------------------------- /src/rules/ifstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/ifstatements.nim -------------------------------------------------------------------------------- /src/rules/localhides.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/localhides.nim -------------------------------------------------------------------------------- /src/rules/namedparams.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/namedparams.nim -------------------------------------------------------------------------------- /src/rules/namingconv.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/namingconv.nim -------------------------------------------------------------------------------- /src/rules/objects.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/objects.nim -------------------------------------------------------------------------------- /src/rules/params.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/params.nim -------------------------------------------------------------------------------- /src/rules/ranges.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/ranges.nim -------------------------------------------------------------------------------- /src/rules/trystatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/trystatements.nim -------------------------------------------------------------------------------- /src/rules/vardeclared.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/vardeclared.nim -------------------------------------------------------------------------------- /src/rules/varuplevel.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/rules/varuplevel.nim -------------------------------------------------------------------------------- /src/utils.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/src/utils.nim -------------------------------------------------------------------------------- /tests/assignments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/assignments.nim -------------------------------------------------------------------------------- /tests/casestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/casestatements.nim -------------------------------------------------------------------------------- /tests/comments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/comments.nim -------------------------------------------------------------------------------- /tests/complexity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/complexity.nim -------------------------------------------------------------------------------- /tests/config.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/config.nim -------------------------------------------------------------------------------- /tests/forstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/forstatements.nim -------------------------------------------------------------------------------- /tests/hasdoc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/hasdoc.nim -------------------------------------------------------------------------------- /tests/hasentity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/hasentity.nim -------------------------------------------------------------------------------- /tests/haspragma.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/haspragma.nim -------------------------------------------------------------------------------- /tests/ifstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/ifstatements.nim -------------------------------------------------------------------------------- /tests/invalid/assignments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/assignments.nim -------------------------------------------------------------------------------- /tests/invalid/casestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/casestatements.nim -------------------------------------------------------------------------------- /tests/invalid/comments.nim: -------------------------------------------------------------------------------- 1 | # Another comment 2 | -------------------------------------------------------------------------------- /tests/invalid/complexity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/complexity.nim -------------------------------------------------------------------------------- /tests/invalid/forstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/forstatements.nim -------------------------------------------------------------------------------- /tests/invalid/hasdoc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/hasdoc.nim -------------------------------------------------------------------------------- /tests/invalid/hasentity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/hasentity.nim -------------------------------------------------------------------------------- /tests/invalid/haspragma.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/haspragma.nim -------------------------------------------------------------------------------- /tests/invalid/ifmaxstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/ifmaxstatements.nim -------------------------------------------------------------------------------- /tests/invalid/ifstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/ifstatements.nim -------------------------------------------------------------------------------- /tests/invalid/localhides.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/localhides.nim -------------------------------------------------------------------------------- /tests/invalid/namedparams.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/namedparams.nim -------------------------------------------------------------------------------- /tests/invalid/namingconv.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/namingconv.nim -------------------------------------------------------------------------------- /tests/invalid/objects.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/objects.nim -------------------------------------------------------------------------------- /tests/invalid/params.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/params.nim -------------------------------------------------------------------------------- /tests/invalid/ranges.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/ranges.nim -------------------------------------------------------------------------------- /tests/invalid/tryemptystatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/tryemptystatements.nim -------------------------------------------------------------------------------- /tests/invalid/trynamestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/trynamestatements.nim -------------------------------------------------------------------------------- /tests/invalid/vardeclared.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/vardeclared.nim -------------------------------------------------------------------------------- /tests/invalid/vardeclaredtypes.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/vardeclaredtypes.nim -------------------------------------------------------------------------------- /tests/invalid/varuplevel.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/invalid/varuplevel.nim -------------------------------------------------------------------------------- /tests/localhides.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/localhides.nim -------------------------------------------------------------------------------- /tests/namedparams.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/namedparams.nim -------------------------------------------------------------------------------- /tests/namingconv.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/namingconv.nim -------------------------------------------------------------------------------- /tests/objects.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/objects.nim -------------------------------------------------------------------------------- /tests/params.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/params.nim -------------------------------------------------------------------------------- /tests/ranges.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/ranges.nim -------------------------------------------------------------------------------- /tests/rules.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/rules.nim -------------------------------------------------------------------------------- /tests/trystatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/trystatements.nim -------------------------------------------------------------------------------- /tests/utils.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/utils.nim -------------------------------------------------------------------------------- /tests/utils/doctemplate.txt: -------------------------------------------------------------------------------- 1 | Template doc. 2 | -------------------------------------------------------------------------------- /tests/utils/helpers.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/utils/helpers.nim -------------------------------------------------------------------------------- /tests/valid/assignments.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/assignments.nim -------------------------------------------------------------------------------- /tests/valid/casestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/casestatements.nim -------------------------------------------------------------------------------- /tests/valid/comments.nim: -------------------------------------------------------------------------------- 1 | # FIXME comment to delete 2 | -------------------------------------------------------------------------------- /tests/valid/complexity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/complexity.nim -------------------------------------------------------------------------------- /tests/valid/forstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/forstatements.nim -------------------------------------------------------------------------------- /tests/valid/hasdoc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/hasdoc.nim -------------------------------------------------------------------------------- /tests/valid/hasentity.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/hasentity.nim -------------------------------------------------------------------------------- /tests/valid/haspragma.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/haspragma.nim -------------------------------------------------------------------------------- /tests/valid/ifmaxstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/ifmaxstatements.nim -------------------------------------------------------------------------------- /tests/valid/ifstatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/ifstatements.nim -------------------------------------------------------------------------------- /tests/valid/localhides.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/localhides.nim -------------------------------------------------------------------------------- /tests/valid/namedparams.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/namedparams.nim -------------------------------------------------------------------------------- /tests/valid/namingconv.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/namingconv.nim -------------------------------------------------------------------------------- /tests/valid/objects.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/objects.nim -------------------------------------------------------------------------------- /tests/valid/params.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/params.nim -------------------------------------------------------------------------------- /tests/valid/ranges.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/ranges.nim -------------------------------------------------------------------------------- /tests/valid/tryemptystatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/tryemptystatements.nim -------------------------------------------------------------------------------- /tests/valid/trynamestatements.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/trynamestatements.nim -------------------------------------------------------------------------------- /tests/valid/vardeclared.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/vardeclared.nim -------------------------------------------------------------------------------- /tests/valid/vardeclaredtypes.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/vardeclaredtypes.nim -------------------------------------------------------------------------------- /tests/valid/varuplevel.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/valid/varuplevel.nim -------------------------------------------------------------------------------- /tests/vardeclared.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/vardeclared.nim -------------------------------------------------------------------------------- /tests/varuplevel.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tests/varuplevel.nim -------------------------------------------------------------------------------- /tools/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tools/README.md -------------------------------------------------------------------------------- /tools/gendoc.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tools/gendoc.nim -------------------------------------------------------------------------------- /tools/genrule.nim: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tools/genrule.nim -------------------------------------------------------------------------------- /tools/rule.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thindil/nimalyzer/HEAD/tools/rule.txt --------------------------------------------------------------------------------