Skip to content

Commit

Permalink
add a hack to support complicated in and enable a test:
Browse files Browse the repository at this point in the history
each object, which supports `is` should have both `__contains__`, which is a regular python method and `contains-hack`, which does the same but is just a EO method. This is needed because currently it is only possible to use an identifier to address a python method. That is, calling "sring literal".__contains__(...) does not work now because of a limitation of a pass, which adds `self` to each method call. On the other hand, calling EO method is possible in any context, like `(pystring "sring literal").contains-hack ...` is ok.
  • Loading branch information
dours committed Jul 26, 2022
1 parent 17f8012 commit df21123
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 14 deletions.
2 changes: 1 addition & 1 deletion transpiler/src/main/eo/preface/pystring.eo
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
[] > force
value > @

[c] > x__contains__
[c] > contains-hack
memory 0 > i
memory FALSE > contains
seq > @
Expand Down
34 changes: 23 additions & 11 deletions transpiler/src/main/eo/preface/xmyArray.eo
Original file line number Diff line number Diff line change
Expand Up @@ -60,20 +60,32 @@
res
stdout "after\n"
res
[self elt] > contains-common
seq > result
stdout (sprintf "len = %d\n" (self.value.length))
self.value.reduce
FALSE
[acc item]
seq > @
acc.or ((elt.eq item).value)
seq > @
stdout (sprintf "len = %d\n" (self.value.length))
pybool result
[] > x__contains__
[self elt] > apply
[stackUp] > @
seq > result
stdout (sprintf "len = %d\n" (self.value.length))
self.value.reduce
FALSE
[acc item]
seq > @
acc.or ((elt.eq item).value)
seq > @
stdout (sprintf "len = %d\n" (self.value.length))
stackUp.forward (return (pybool result))
123
stackUp.forward (return (contains-common self elt)) > @
[elt] > contains-hack
seq > result
stdout (sprintf "len = %d\n" (value.length))
value.reduce
FALSE
[acc item]
seq > @
acc.or ((elt.eq item).value)
seq > @
stdout (sprintf "len = %d\n" (value.length))
pybool result
[] > iter
memory 0 > curPos
[] > x__next__
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ object PrintEO {
val r1 = Field(r, "x__id__", ann.pos)
printExpr(SimpleComparison(if (op == Compops.Is) Compops.Eq else Compops.Neq, l1, r1, ann.pos))
case SimpleComparison(op, l, r, _) if op == Compops.In =>
orb + e(r) + ".x__contains__" + space + e(l) + crb
orb + e(r) + ".contains-hack" + space + e(l) + crb
case SimpleComparison(op, l, r, _) => orb + e(l) + "." + compop(op) + space + e(r) + crb
case FreakingComparison(List(op), List(l, r), _) => orb + e(l) + "." + compop(op) + space + e(r) + crb
case LazyLAnd(l, r, _) => orb + e(l) + ".and " + e(r) + crb
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
enabled: False
enabled: True
python: |
def test():
return 9 in [x * x for x in range(1, 6) if (x % 2) == 1]

1 comment on commit df21123

@0pdd
Copy link
Member

@0pdd 0pdd commented on df21123 Jul 26, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wasn't able to retrieve PDD puzzles from the code base and submit them to GITHUB. If you think that it's a bug on our side, please submit it to yegor256/0pdd:

set -x && set -e && set -o pipefail && cd /tmp/0pdd20220726-13-566rax/Z2l0QGdpdGh1Yi5jb206cG9seXN0YXQvcHkyZW8uZ2l0 && pdd -v -f /tmp/20220726-8286-1lb810l [1]: + set -e + set -o pipefail + cd /tmp/0pdd20220726-13-566rax/Z2l0QGdpdGh1Yi5jb206cG9seXN0YXQvcHkyZW8uZ2l0 + pdd -v -f...

Please, copy and paste this stack trace to GitHub:

UserError
set -x && set -e && set -o pipefail && cd /tmp/0pdd20220726-13-566rax/Z2l0QGdpdGh1Yi5jb206cG9seXN0YXQvcHkyZW8uZ2l0 && pdd -v -f /tmp/20220726-8286-1lb810l [1]:
+ set -e
+ set -o pipefail
+ cd /tmp/0pdd20220726-13-566rax/Z2l0QGdpdGh1Yi5jb206cG9seXN0YXQvcHkyZW8uZ2l0
+ pdd -v -f /tmp/20220726-8286-1lb810l

My version is 0.21.2
Ruby version is 2.7.5 at x86_64-linux
Reading from root dir /tmp/0pdd20220726-13-566rax/Z2l0QGdpdGh1Yi5jb206cG9seXN0YXQvcHkyZW8uZ2l0
Reading runEO/pom.xml ...
Reading .gitignore ...
Reading README.md ...
Reading Dockerfile ...
Reading transpiler/pom.xml ...
Reading transpiler/src/main/eo/preface/continue.eo ...
Reading transpiler/src/main/eo/preface/fakeclasses.eo ...
Reading transpiler/src/main/eo/preface/xiter.eo ...
Reading transpiler/src/main/eo/preface/pyfloat.eo ...
Reading transpiler/src/main/eo/preface/xTypeError.eo ...
Reading transpiler/src/main/eo/preface/pyint.eo ...
Reading transpiler/src/main/eo/preface/xZeroDivisionError.eo ...
Reading transpiler/src/main/eo/preface/break.eo ...
Reading transpiler/src/main/eo/preface/xrange.eo ...
Reading transpiler/src/main/eo/preface/pycomplex.eo ...
Reading transpiler/src/main/eo/preface/pybool.eo ...
Reading transpiler/src/main/eo/preface/raiseNothing.eo ...
Reading transpiler/src/main/eo/preface/newUID.eo ...
Reading transpiler/src/main/eo/preface/xmyArray.eo ...
Reading transpiler/src/main/eo/preface/raiseEmpty.eo ...
Reading transpiler/src/main/eo/preface/mkCopy.eo ...
Reading transpiler/src/main/eo/preface/xlen.eo ...
Reading transpiler/src/main/eo/preface/xStopIteration.eo ...
Reading transpiler/src/main/eo/preface/pystring.eo ...
Reading transpiler/src/main/eo/preface/return.eo ...
Reading transpiler/src/main/eo/my-array.eo ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/PrintLinearizedMutableEOWithCage.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/Main.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/Transpile.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/FindBadConstructs.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/SimpleAnalysis.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/ExpressionPasses.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/ClosureWithCage.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/StatementPasses.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/PrintEO.scala ...
Reading transpiler/src/main/scala/org/polystat/py2eo/transpiler/Common.scala ...
Reading transpiler/src/main/java/org/polystat/py2eo/transpiler/dummy.java ...
Reading transpiler/src/main/python/inheritance.py ...
Reading transpiler/src/main/python/C3.py ...
Reading transpiler/src/main/python/closureRuntime.py ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/django-pom.xml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/eo/map-tests.eo ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_abstract_numbers.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_userstring.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_symtable.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_class.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_imghdr.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_uuid.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_cmd.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_index.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_smtpd.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_dict_version.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_rlcompleter.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_random.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_fileio.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_urllib2net.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_funcattrs.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_quopri.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_types.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_bool.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_codecencodings_cn.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_flufl.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_univnewlines.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_pyexpat.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_colorsys.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_compile.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_coroutines.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_linecache.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_gc.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_site.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_platform.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_property.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_functools.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_int_literal.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_audioop.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_asyncgen.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_pulldom.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_modulefinder.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_typechecks.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_unpack.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_pkgutil.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_fstring.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_with.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_userlist.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_threading_local.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_context.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_webbrowser.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_asyncore.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/README.md ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_metaclass.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_csv.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_thread.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_codecmaps_jp.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_struct.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_http_cookies.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_fractions.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_pwd.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_syslog.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_codecencodings_iso2022.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_pickletools.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_genericpath.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_asynchat.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_xdrlib.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_locale.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_codeop.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_mailbox.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_timeout.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_bufio.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_httpservers.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_dict.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_decorators.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_grp.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_imaplib.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_bigmem.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_posix.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_sndhdr.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_aifc.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_wave.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_re.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_httplib.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_codecencodings_hk.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_keywordonlyarg.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_poll.yaml ...
Reading transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_smtplib.yaml ...
ERROR: transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_smtplib.yaml; transpiler/src/test/resources/org/polystat/py2eo/transpiler/testParserPrinter/test_smtplib.yaml:1122 TODO must have a leading space to become a puzzle, as this page explains: https://github.com/cqfn/pdd#how-to-format
If you can't understand the cause of this issue or you don't know how to fix it, please submit a GitHub issue, we will try to help you: https://github.com/cqfn/pdd/issues. This tool is still in its beta version and we will appreciate your feedback. Here is where you can find more documentation: https://github.com/cqfn/pdd/blob/master/README.md.
Exit code is 1

/app/objects/git_repo.rb:73:in `rescue in block in xml'
/app/objects/git_repo.rb:70:in `block in xml'
/app/vendor/ruby-2.7.5/lib/ruby/2.7.0/tempfile.rb:291:in `open'
/app/objects/git_repo.rb:69:in `xml'
/app/objects/puzzles.rb:41:in `deploy'
/app/objects/jobs/job.rb:38:in `proceed'
/app/objects/jobs/job_starred.rb:32:in `proceed'
/app/objects/jobs/job_recorded.rb:31:in `proceed'
/app/objects/jobs/job_emailed.rb:33:in `proceed'
/app/objects/jobs/job_commiterrors.rb:33:in `proceed'
/app/objects/jobs/job_detached.rb:48:in `exclusive'
/app/objects/jobs/job_detached.rb:36:in `block in proceed'
/app/objects/jobs/job_detached.rb:36:in `fork'
/app/objects/jobs/job_detached.rb:36:in `proceed'
/app/0pdd.rb:517:in `process_request'
/app/0pdd.rb:355:in `block in <top (required)>'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1685:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1685:in `block in compile!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1023:in `block (3 levels) in route!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1042:in `route_eval'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1023:in `block (2 levels) in route!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1071:in `block in process_route'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1069:in `catch'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1069:in `process_route'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1021:in `block in route!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1018:in `each'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1018:in `route!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1140:in `block in dispatch!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `block in invoke'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `catch'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `invoke'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1135:in `dispatch!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:949:in `block in call!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `block in invoke'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `catch'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1112:in `invoke'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:949:in `call!'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:938:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/xss_header.rb:18:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/path_traversal.rb:16:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/json_csrf.rb:26:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/base.rb:50:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-protection-2.2.0/lib/rack/protection/frame_options.rb:31:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-2.2.4/lib/rack/logger.rb:17:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-2.2.4/lib/rack/common_logger.rb:38:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:255:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:248:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-2.2.4/lib/rack/head.rb:12:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-2.2.4/lib/rack/method_override.rb:24:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:218:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1992:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1552:in `block in call'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1768:in `synchronize'
/app/vendor/bundle/ruby/2.7.0/gems/sinatra-2.2.0/lib/sinatra/base.rb:1552:in `call'
/app/vendor/bundle/ruby/2.7.0/gems/rack-2.2.4/lib/rack/handler/webrick.rb:95:in `service'
/app/vendor/ruby-2.7.5/lib/ruby/2.7.0/webrick/httpserver.rb:140:in `service'
/app/vendor/ruby-2.7.5/lib/ruby/2.7.0/webrick/httpserver.rb:96:in `run'
/app/vendor/ruby-2.7.5/lib/ruby/2.7.0/webrick/server.rb:307:in `block in start_thread'

Please sign in to comment.