You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a couple of cases of interop call analysis that "lose" metadata, leading to less detail in the error report (in the case of an error):
expanding (.foo x) to (. x foo) (for instance members)
getting static fields (using .- notation)
(initially I was just looking at the first one, but when I started writing tests for a PR for the first, it sort of uncovered the second case for me - this is the only reason these somewhat separate cases are grouped)
repro
(Using bb for repros for concision)
expanding (.foo x) to (. x foo)
; 'good' case
user=> (.3 missingMem)
java.lang.NoSuchFieldException: missingMem [at <repl>:1:1]
; 'bad' case
user=> (.missingMem3)
missingMem
# 'good' case
$ bb -e "(. Long missingMem)"
----- Error --------------------------------------------------------------------
Type: java.lang.IllegalArgumentException
Message: No matching method missingMem found taking 0 args
Location: <expr>:1:1
----- Context ------------------------------------------------------------------
1: (. Long missingMem)
^--- No matching method missingMem found taking 0 args
----- Stack trace --------------------------------------------------------------
user - <expr>:1:1
# 'bad' case
$ bb -e "(. Long -missingMem)"
----- Error --------------------------------------------------------------------
Type: java.lang.IllegalArgumentException
Message: No matching field found: missingMem for class java.lang.Long
expected behavior
for both cases, expect the 'bad' case to provide a similar level of detail to the 'good' case
notes
I have a PR just about ready that will address both of these; this issue is primarily meant to set context/discuss the problem-ness separately from the code changes.
The text was updated successfully, but these errors were encountered:
version
master branch
platform
JVM
problem
There are a couple of cases of interop call analysis that "lose" metadata, leading to less detail in the error report (in the case of an error):
(.foo x)
to(. x foo)
(for instance members).-
notation)(initially I was just looking at the first one, but when I started writing tests for a PR for the first, it sort of uncovered the second case for me - this is the only reason these somewhat separate cases are grouped)
repro
(Using
bb
for repros for concision)(.foo x)
to(. x foo)
bb -e
to illustrate detail that's 'lost')expected behavior
for both cases, expect the 'bad' case to provide a similar level of detail to the 'good' case
notes
I have a PR just about ready that will address both of these; this issue is primarily meant to set context/discuss the problem-ness separately from the code changes.
The text was updated successfully, but these errors were encountered: