diff --git a/spec/compiler/crystal/tools/doc/doc_renderer_spec.cr b/spec/compiler/crystal/tools/doc/doc_renderer_spec.cr
index 557889e4f2a5..cbee670b83a5 100644
--- a/spec/compiler/crystal/tools/doc/doc_renderer_spec.cr
+++ b/spec/compiler/crystal/tools/doc/doc_renderer_spec.cr
@@ -77,7 +77,7 @@ describe Doc::Markdown::DocRenderer do
end
end
- pending "doesn't find sibling methods with fake receiver" do
+ it "doesn't find sibling methods with fake receiver" do
{base, base_foo}.each do |obj|
assert_code_link(obj, "wrong#bar")
assert_code_link(obj, "wrong.bar")
@@ -183,7 +183,7 @@ describe Doc::Markdown::DocRenderer do
end
end
- pending "finds method of an absolute type" do
+ it "finds method of an absolute type" do
{base, base_foo}.each do |obj|
assert_code_link(obj, "::Base::Nested#foo", %(::Base::Nested#foo))
assert_code_link(obj, "::Base.baz", %(::Base.baz))
@@ -250,7 +250,7 @@ describe Doc::Markdown::DocRenderer do
end
end
- pending "doesn't find type not at word boundary" do
+ it "doesn't find type not at word boundary" do
{base, base_foo}.each do |obj|
assert_code_link(obj, "aBase")
end
diff --git a/src/compiler/crystal/tools/doc/markdown/doc_renderer.cr b/src/compiler/crystal/tools/doc/markdown/doc_renderer.cr
index 5d78a3be47b3..c0031e174d25 100644
--- a/src/compiler/crystal/tools/doc/markdown/doc_renderer.cr
+++ b/src/compiler/crystal/tools/doc/markdown/doc_renderer.cr
@@ -47,12 +47,12 @@ class Crystal::Doc::Markdown::DocRenderer < Crystal::Doc::Markdown::HTMLRenderer
end
# Check Type#method(...) or Type or #method(...)
- text.gsub %r(\b
- ((?:\:\:)?[A-Z]\w+(?:\:\:[A-Z]\w+)*[#\.][\w<=>+\-*\/\[\]&|?!^~]+[?!]?(?:\(.*?\))?)
+ text.gsub %r(
+ ((?:\B\:\:)?\b[A-Z]\w+(?:\:\:[A-Z]\w+)*[#\.][\w<=>+\-*\/\[\]&|?!^~]+[?!]?(?:\(.*?\))?)
|
- ((?:\:\:)?[A-Z]\w+(?:\:\:[A-Z]\w+)*)
+ ((?:\B\:\:)?\b[A-Z]\w+(?:\:\:[A-Z]\w+)*)
|
- ([#\.][\w<=>+\-*\/\[\]&|?!^~]+[?!]?(?:\(.*?\))?)
+ (\B[#\.][\w<=>+\-*\/\[\]&|?!^~]+[?!]?(?:\(.*?\))?)
)x do |match_text, match|
sharp_index = match_text.index('#')
dot_index = match_text.index('.')