{"action":"created","issue":{"url":"https://api.github.com/repos/palantir/tslint/issues/647","labels_url":"https://api.github.com/repos/palantir/tslint/issues/647/labels{/name}","comments_url":"https://api.github.com/repos/palantir/tslint/issues/647/comments","events_url":"https://api.github.com/repos/palantir/tslint/issues/647/events","html_url":"https://github.com/palantir/tslint/issues/647","id":105569025,"number":647,"title":"RangeError: Maximum call stack size exceeded","user":{"login":"irengrig","id":6598461,"avatar_url":"https://avatars.githubusercontent.com/u/6598461?v=3","gravatar_id":"","url":"https://api.github.com/users/irengrig","html_url":"https://github.com/irengrig","followers_url":"https://api.github.com/users/irengrig/followers","following_url":"https://api.github.com/users/irengrig/following{/other_user}","gists_url":"https://api.github.com/users/irengrig/gists{/gist_id}","starred_url":"https://api.github.com/users/irengrig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/irengrig/subscriptions","organizations_url":"https://api.github.com/users/irengrig/orgs","repos_url":"https://api.github.com/users/irengrig/repos","events_url":"https://api.github.com/users/irengrig/events{/privacy}","received_events_url":"https://api.github.com/users/irengrig/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2015-09-09T10:29:36Z","updated_at":"2015-09-09T14:14:24Z","closed_at":null,"body":"When running tslint 2.1.1 against a file, internal error occurs: (config and file texts are below)\r\n\r\n```\r\n> node tslint -c tslint.json -f 1.ts\r\nC:\\Users\\user\\AppData\\Roaming\\npm\\node_modules\\tslint\\bin\\tslint-cli.js:0\r\n(function (exports, require, module, __filename, __dirname) { /*! ************\r\n^\r\nRangeError: Maximum call stack size exceeded\r\n    at getTypeFromTypeReferenceNode (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\\r\nnpm\\node_modules\\tslint\\bin\\tslint-cli.js)\r\n    at getTypeFromTypeNode (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\node_\r\nmodules\\tslint\\bin\\tslint-cli.js:13404:28)\r\n    at getTypeOfNode (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\node_module\r\ns\\tslint\\bin\\tslint-cli.js:18090:24)\r\n    at Object.getTypeAtLocation (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\\r\nnode_modules\\tslint\\bin\\tslint-cli.js:14602:20)\r\n    at getPropertySymbolFromTypeReference (C:\\Users\\Irina.Chernushina\\AppData\\Ro\r\naming\\npm\\node_modules\\tslint\\bin\\tslint-cli.js:24509:53)\r\n    at Object.forEach (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\node_modul\r\nes\\tslint\\bin\\tslint-cli.js:586:30)\r\n    at C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\node_modules\\tslint\\bin\\ts\r\nlint-cli.js:24499:32\r\n    at Object.forEach (C:\\Users\\Irina.Chernushina\\AppData\\Roaming\\npm\\node_modul\r\nes\\tslint\\bin\\tslint-cli.js:586:30)\r\n    at getPropertySymbolsFromBaseTypes (C:\\Users\\Irina.Chernushina\\AppData\\Roami\r\nng\\npm\\node_modules\\tslint\\bin\\tslint-cli.js:24496:24)\r\n    at getPropertySymbolFromTypeReference (C:\\Users\\Irina.Chernushina\\AppData\\Ro\r\naming\\npm\\node_modules\\tslint\\bin\\tslint-cli.js:24515:29)\r\n```\r\n\r\ntslint.json:\r\n```\r\n{\r\n  \"rules\": {\r\n    \"ban\": [true,\r\n      [\"_\", \"extend\"],\r\n      [\"_\", \"isNull\"],\r\n      [\"_\", \"isDefined\"]\r\n    ],\r\n    \"class-name\": true,\r\n    \"comment-format\": [true,\r\n      \"check-space\",\r\n      \"check-lowercase\"\r\n    ],\r\n    \"curly\": true,\r\n    \"eofline\": true,\r\n    \"forin\": true,\r\n    \"indent\": [true, 4],\r\n    \"interface-name\": true,\r\n    \"jsdoc-format\": true,\r\n    \"label-position\": true,\r\n    \"label-undefined\": true,\r\n    \"max-line-length\": [true, 140],\r\n    \"no-arg\": true,\r\n    \"no-bitwise\": true,\r\n    \"no-console\": [true,\r\n      \"debug\",\r\n      \"info\",\r\n      \"time\",\r\n      \"timeEnd\",\r\n      \"trace\"\r\n    ],\r\n    \"no-construct\": true,\r\n    \"no-debugger\": true,\r\n    \"no-duplicate-key\": true,\r\n    \"no-duplicate-variable\": true,\r\n    \"no-empty\": true,\r\n    \"no-eval\": true,\r\n    \"no-string-literal\": true,\r\n    \"no-trailing-comma\": true,\r\n    \"no-trailing-whitespace\": true,\r\n    \"no-unused-expression\": true,\r\n    \"no-unused-variable\": true,\r\n    \"no-unreachable\": true,\r\n    \"no-use-before-declare\": true,\r\n    \"no-var-requires\": true,\r\n    \"one-line\": [true,\r\n      \"check-open-brace\",\r\n      \"check-catch\",\r\n      \"check-else\",\r\n      \"check-whitespace\"\r\n    ],\r\n    \"quotemark\": [true, \"double\"],\r\n    \"radix\": true,\r\n    \"semicolon\": true,\r\n    \"triple-equals\": [true, \"allow-null-check\"],\r\n    \"typedef\": [true,\r\n      \"callSignature\",\r\n      \"catchClause\",\r\n      \"indexSignature\",\r\n      \"parameter\",\r\n      \"propertySignature\",\r\n      \"variableDeclarator\"\r\n    ],\r\n    \"typedef-whitespace\": [true,\r\n      [\"callSignature\", \"noSpace\"],\r\n      [\"catchClause\", \"noSpace\"],\r\n      [\"indexSignature\", \"space\"]\r\n    ],\r\n    \"use-strict\": [true,\r\n      \"check-module\",\r\n      \"check-function\"\r\n    ],\r\n    \"variable-name\": false,\r\n    \"whitespace\": [true,\r\n      \"check-branch\",\r\n      \"check-decl\",\r\n      \"check-operator\",\r\n      \"check-separator\",\r\n      \"check-type\"\r\n    ]\r\n  }\r\n}\r\n```\r\n\r\n1.ts:\r\n```\r\nclass Greeter {\r\n    greeting: string;\r\n    constructor(message: string) {\r\n        this.greeting = message;\r\n    }\r\n    greet() {\r\n        return \"Hello, \" + this.greeting;\r\n    }\r\n}\r\n\r\nvar greeter = new Greeter(\"world\");\r\n\r\nclass Animal {\r\n    name:string;\r\n    constructor(theName: string) { this.name = theName; }\r\n    move(meters: number) {\r\n        alert(this.name + \" moved \" + meters + \"m.\");\r\n    }\r\n}\r\n\r\nclass Snake extends Animal {\r\n    constructor(name: string) { super(name); }\r\n    move() {\r\n        alert(\"Slithering...\");\r\n        super.move(5);\r\n    }\r\n}\r\n\r\nclass Horse extends Animal {\r\n    constructor(name: string) { super(name); }\r\n    move() {\r\n        alert(\"Galloping...\");\r\n        super.move(45);\r\n    }\r\n}\r\n\r\nvar sam = new Snake(\"Sammy the Python\");\r\nvar tom: Animal = new Horse(\"Tommy the Palomino\");\r\n\r\nsam.move();\r\ntom.move(34);\r\n\r\n\r\nmodule ModuleValidator {\r\n    import checkChars = CharUtils.notWhiteSpace;\r\n    export interface HasValidator<T> {\r\n        validateValue():Boolean;\r\n    }\r\n\r\n    class HasValidator implements HasValidator<String> {\r\n        /* Processed values */\r\n        static validatedValue:Array<String> = [\"\", \"aa\"];\r\n        private myValue:String;\r\n\r\n        /**\r\n         * Constructor for <code>HasValidator</code> class\r\n         * @param value for <i>validation</i>\r\n         */\r\n        constructor(valueParameter:String) {\r\n            this.myValue = valueParameter;\r\n            HasValidator.validatedValue.push(value);\r\n        }\r\n\r\n        public validateValue():Boolean {\r\n            var resultValue:Boolean = checkChars(this.myValue);\r\n            return resultValue;\r\n        }\r\n\r\n        static createInstance(valueParameter:String):HasValidator {\r\n            return new HasValidator(valueParameter);\r\n        }\r\n    }\r\n\r\n    function globalFunction<TypeParameter>(value:TypeParameter) { //global function\r\n        return 42;\r\n    }\r\n    declare var declareUrl;\r\n    var varUrl = declareUrl.replace(/^\\s*(.*)/, \"$1\").concat(\"\\u1111\\z\\n\\u22\");\r\n    HasValidator.createInstance(varUrl).validateValue();\r\n}\r\n```\r\n"},"comment":{"url":"https://api.github.com/repos/palantir/tslint/issues/comments/138922747","html_url":"https://github.com/palantir/tslint/issues/647#issuecomment-138922747","issue_url":"https://api.github.com/repos/palantir/tslint/issues/647","id":138922747,"user":{"login":"JKillian","id":1400151,"avatar_url":"https://avatars.githubusercontent.com/u/1400151?v=3","gravatar_id":"","url":"https://api.github.com/users/JKillian","html_url":"https://github.com/JKillian","followers_url":"https://api.github.com/users/JKillian/followers","following_url":"https://api.github.com/users/JKillian/following{/other_user}","gists_url":"https://api.github.com/users/JKillian/gists{/gist_id}","starred_url":"https://api.github.com/users/JKillian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JKillian/subscriptions","organizations_url":"https://api.github.com/users/JKillian/orgs","repos_url":"https://api.github.com/users/JKillian/repos","events_url":"https://api.github.com/users/JKillian/events{/privacy}","received_events_url":"https://api.github.com/users/JKillian/received_events","type":"User","site_admin":false},"created_at":"2015-09-09T14:14:24Z","updated_at":"2015-09-09T14:14:24Z","body":"Can you try updating to the latest version, tslint 2.5.0-beta and let me know if the problem persists?"}}