halohalospecial / atom-elmjutsu

A bag of tricks for developing with Elm. (Atom package)
https://atom.io/packages/elmjutsu
MIT License
192 stars 24 forks source link

Uncaught RangeError: Maximum call stack size exceeded #31

Closed rommsen closed 7 years ago

rommsen commented 7 years ago

Hey there. I always get this error when opening a specific file. This really stops me from using this awesome plugin :-(

[Enter steps to reproduce below:]

  1. clone git@github.com:rommsen/elm-bookkeeping.git
  2. open https://github.com/rommsen/elm-bookkeeping/blob/master/src/elm/Members/View.elm in atom

Atom Version: 1.12.7 Electron Version: 1.3.13 System: Linux Mint Thrown From: elmjutsu package, v2.11.1

Stack Trace

Uncaught RangeError: Maximum call stack size exceeded

At /home/roman/.atom/packages/elmjutsu/elm/indexer.js:5079

RangeError: Maximum call stack size exceeded
    at up (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:5079:16)
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:5166:14)
    at A3 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:98:11)
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:5181:10)
    at A3 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:98:11)
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:6947:14)
    at A5 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:110:11)
    at _user$project$Indexer$getRecordTipeParts (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:7022:10)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7663:9
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:7696:5)
    at A4 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:104:11)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7691:70
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:7696:5)
    at A4 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:104:11)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7691:70
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:7696:5)
    at A4 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:104:11)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7652:16
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:2239:11)
    at A2 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:92:11)
    at Function.foldr [as func] (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:1972:9)
    at A3 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:98:11)
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:2233:10)
    at A2 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:92:11)
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:2337:4)
    at A2 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:92:11)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7648:14
    at Function.func (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:7696:5)
    at A4 (/home/roman/.atom/packages/elmjutsu/elm/indexer.js:104:11)
    at /home/roman/.atom/packages/elmjutsu/elm/indexer.js:7691:70

Commands

 17x -3:05.9.0 blur (div.settings-view.pane-item)

Config

{
  "core": {
    "telemetryConsent": "no"
  },
  "elmjutsu": {
    "autocompleteEnabled": true,
    "autocompleteSnippetsEnabled": true,
    "cacheDirectory": "/tmp/elmjutsu156701HxK7CsBdcC",
    "hyperclickEnabled": true,
    "showSidekick": true
  }
}

Installed Packages

# User
elm-format, v2.1.0 (active)
elmjutsu, v2.11.1 (active)
html-to-elm, v0.2.0 (inactive)
hyperclick, v0.0.39 (active)
intellij-idea-keymap, v0.2.3 (active)
language-elm, v1.5.0 (active)
linter, v1.11.18 (active)
linter-elm-make, v0.18.1 (active)
open-recent, v5.0.0 (active)
react, v0.16.1 (active)
atom-dark-syntax, v0.27.0 (inactive)
atom-dark-ui, v0.52.0 (inactive)
atom-light-syntax, v0.28.0 (inactive)
atom-light-ui, v0.45.0 (inactive)
base16-tomorrow-dark-theme, v1.3.0 (inactive)
base16-tomorrow-light-theme, v1.3.0 (inactive)
one-dark-ui, v1.6.2 (active)
one-light-ui, v1.6.2 (inactive)
one-dark-syntax, v1.5.0 (active)
one-light-syntax, v1.5.0 (inactive)
solarized-dark-syntax, v1.0.5 (inactive)
solarized-light-syntax, v1.0.5 (inactive)
about, v1.7.0 (active)
archive-view, v0.62.0 (active)
autocomplete-atom-api, v0.10.0 (active)
autocomplete-css, v0.13.1 (active)
autocomplete-html, v0.7.2 (active)
autocomplete-plus, v2.31.4 (active)
autocomplete-snippets, v1.11.0 (active)
autoflow, v0.27.0 (inactive)
autosave, v0.23.1 (active)
background-tips, v0.26.1 (active)
bookmarks, v0.42.0 (active)
bracket-matcher, v0.82.2 (active)
command-palette, v0.39.0 (inactive)
deprecation-cop, v0.54.1 (active)
dev-live-reload, v0.47.0 (active)
encoding-selector, v0.22.0 (active)
exception-reporting, v0.40.0 (active)
find-and-replace, v0.202.2 (inactive)
fuzzy-finder, v1.4.0 (active)
git-diff, v1.1.0 (active)
go-to-line, v0.31.0 (inactive)
grammar-selector, v0.48.2 (active)
image-view, v0.60.0 (active)
incompatible-packages, v0.26.1 (active)
keybinding-resolver, v0.35.0 (active)
line-ending-selector, v0.5.0 (active)
link, v0.31.2 (inactive)
markdown-preview, v0.158.8 (active)
metrics, v1.1.2 (active)
notifications, v0.65.1 (active)
open-on-github, v1.2.1 (inactive)
package-generator, v1.0.1 (inactive)
settings-view, v0.243.1 (active)
snippets, v1.0.4 (active)
spell-check, v0.68.4 (active)
status-bar, v1.4.1 (active)
styleguide, v0.47.2 (active)
symbols-view, v0.113.1 (inactive)
tabs, v0.103.0 (active)
timecop, v0.33.2 (active)
tree-view, v0.210.0 (active)
update-package-dependencies, v0.10.0 (active)
welcome, v0.35.1 (active)
whitespace, v0.35.0 (active)
wrap-guide, v0.38.2 (active)
language-c, v0.54.0 (active)
language-clojure, v0.22.1 (active)
language-coffee-script, v0.48.0 (active)
language-csharp, v0.13.0 (active)
language-css, v0.40.1 (active)
language-gfm, v0.88.0 (active)
language-git, v0.15.0 (active)
language-go, v0.43.0 (active)
language-html, v0.47.1 (active)
language-hyperlink, v0.16.1 (active)
language-java, v0.24.0 (active)
language-javascript, v0.122.0 (active)
language-json, v0.18.3 (active)
language-less, v0.29.6 (active)
language-make, v0.22.2 (active)
language-mustache, v0.13.0 (active)
language-objective-c, v0.15.1 (active)
language-perl, v0.37.0 (active)
language-php, v0.37.3 (active)
language-property-list, v0.8.0 (active)
language-python, v0.45.1 (active)
language-ruby, v0.70.2 (active)
language-ruby-on-rails, v0.25.1 (active)
language-sass, v0.57.0 (active)
language-shellscript, v0.23.0 (active)
language-source, v0.9.0 (active)
language-sql, v0.25.0 (active)
language-text, v0.7.1 (active)
language-todo, v0.29.1 (active)
language-toml, v0.18.1 (active)
language-xml, v0.34.12 (active)
language-yaml, v0.27.1 (active)

# Dev
No dev packages
halohalospecial commented 7 years ago

Your specific case should be resolved already in the new version (v2.12.0), but it's still possible to get Maximum call stack size exceeded if there's an infinite type (recursive type alias). Will solve that in the future :smiley:

rommsen commented 7 years ago

Yes I already tested it. Looks good. Thanks for the quick fix :+1:

halohalospecial commented 7 years ago

Hi, the latest version (v2.12.1) should no longer crash on recursive type aliases.