Skip to content

Commit

Permalink
fix: Correctly emit refs for entities in the Opus namespace
Browse files Browse the repository at this point in the history
  • Loading branch information
varungandhi-src committed Oct 1, 2024
1 parent 2c81298 commit a839dce
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 6 deletions.
9 changes: 3 additions & 6 deletions scip_indexer/SCIPSymbolRef.cc
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@

#include "common/FileSystem.h"
#include "common/sort/sort.h"
#include "core/source_generator/source_generator.h"
#include "core/Loc.h"
#include "core/source_generator/source_generator.h"
#include "main/lsp/LSPLoop.h"

#include "scip_indexer/Debug.h"
Expand Down Expand Up @@ -184,10 +184,6 @@ bool GenericSymbolRef::isSorbetInternal(const core::GlobalState &gs, core::Symbo
if (klass == core::Symbols::Sorbet_Private() || klass == core::Symbols::T() || klass == classT) {
return true;
}
auto name = klass.data(gs)->name;
if (name == core::Names::Constants::Opus()) {
return true;
}
}
visited.insert(sym);
sym = sym.owner(gs);
Expand Down Expand Up @@ -228,7 +224,8 @@ void GenericSymbolRef::saveDocStrings(const core::GlobalState &gs, core::TypePtr
auto ref = this->selfOrOwner.asMethodRef();
auto recvType = ref.data(gs)->owner.data(gs)->resultType;
checkType(recvType, fmt::format("receiver type for {}", ref.showFullName(gs)));
markdown = core::source_generator::prettyTypeForMethod(gs, ref, recvType, nullptr, nullptr, core::ShowOptions());
markdown =
core::source_generator::prettyTypeForMethod(gs, ref, recvType, nullptr, nullptr, core::ShowOptions());
// FIXME(varun): For some reason, it looks like a bunch of public methods
// get marked as private here. Avoid printing misleading info until we fix that.
// https://github.com/sourcegraph/scip-ruby/issues/33
Expand Down
12 changes: 12 additions & 0 deletions test/scip/testdata/encrypted_prop.snapshot.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,23 @@ def self.encrypted_prop(opts={}); end
# ^^^^^^^^^^^^^^ definition [..] `<Class:EncryptedProp>`#encrypted_prop().
encrypted_prop :foo
# ^^^^^^^^^^^^^^^^^^^ reference [..] String#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#Encryptable#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#Encryptable#EncryptedValue#
# ^^^^^^^^^^^^^^^^^^^ reference [..] Opus#
# ^^^ definition [..] EncryptedProp#`encrypted_foo=`().
# ^^^ definition [..] EncryptedProp#`foo=`().
# ^^^ definition [..] EncryptedProp#encrypted_foo().
# ^^^ definition [..] EncryptedProp#foo().
encrypted_prop :bar, migrating: true, immutable: true
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#Encryptable#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] Opus#DB#Model#Mixins#Encryptable#EncryptedValue#
# ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] String#
# ^^^ definition [..] EncryptedProp#bar().
# ^^^ definition [..] EncryptedProp#encrypted_bar().
Expand Down
8 changes: 8 additions & 0 deletions test/scip/testdata/opus.snapshot.rb
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,11 @@ module ABC
# ^^^^^^^^^^^^^^^ definition [..] ABC#TYPES_IN_MODULE.
# ^^ reference [..] Kernel#
# ^^ reference [..] Kernel#lambda().
# ^^^^ reference [..] Opus#
# ^^^^^^^ reference [..] Opus#Derived#
# ^^^^^^ reference [..] Symbol#
# ^^^^ reference [..] Opus#
# ^^^^ reference [..] Opus#Base#
# ^^^^^^^ definition local 4~#119448696
# ^^^^^^^^ reference [..] ABC#TYPES_IN_MODULE.
end
Expand All @@ -47,7 +51,11 @@ class Other
# ^^^^^^^^^^^^^^ definition [..] Other#TYPES_IN_CLASS.
# ^^ reference [..] Kernel#
# ^^ reference [..] Kernel#lambda().
# ^^^^ reference [..] Opus#
# ^^^^^^^ reference [..] Opus#Derived#
# ^^^^^^ reference [..] Symbol#
# ^^^^ reference [..] Opus#
# ^^^^ reference [..] Opus#Base#
# ^^^^^^^ definition local 4~#119448696
# ^^^^^^^^ reference [..] Other#TYPES_IN_CLASS.
end

0 comments on commit a839dce

Please sign in to comment.