@@ -1750,20 +1750,20 @@ mod visibility_tests {
17501750 fn index_private_constant_calls_diagnostics ( ) {
17511751 let context = index_source ( {
17521752 "
1753- private_constant :NOT_INDEXED
1754- self.private_constant :NOT_INDEXED
1755- foo.private_constant :NOT_INDEXED # not indexed, dynamic receiver
1753+ private_constant :BAR # not indexed, called at top level
1754+ self.private_constant :BAR # not indexed, self receiver at top level
1755+ foo.private_constant :BAR # not indexed, dynamic receiver
17561756
17571757 module Foo
1758- private_constant NOT_INDEXED, not_indexed # not indexed, not a symbol
1758+ private_constant SomeConst, some_method # not indexed, non-literal arguments
17591759 private_constant # not indexed, no arguments
17601760
17611761 def self.qux
1762- private_constant :Bar # not indexed, dynamic
1762+ private_constant :BAR # not indexed, inside a method
17631763 end
17641764
17651765 def foo
1766- private_constant :Bar # not indexed, dynamic
1766+ private_constant :BAR # not indexed, inside a method
17671767 end
17681768 end
17691769 "
@@ -1772,15 +1772,52 @@ mod visibility_tests {
17721772 assert_local_diagnostics_eq ! (
17731773 & context,
17741774 vec![
1775- "invalid-private- constant: Private constant called at top level (1:1-1:30 )" ,
1776- "invalid-private- constant: Private constant called at top level (2:1-2:35 )" ,
1777- "invalid-private- constant: Dynamic receiver for private constant (3:1-3:34 )" ,
1778- "invalid-private- constant: Private constant called with non-symbol argument (6:20-6:31 )" ,
1779- "invalid-private- constant: Private constant called with non-symbol argument (6:33 -6:44 )" ,
1775+ "invalid-constant-visibility: `private_constant` called at top level (1:1-1:22 )" ,
1776+ "invalid-constant-visibility: `private_constant` called at top level (2:1-2:27 )" ,
1777+ "invalid-constant-visibility : Dynamic receiver for `private_constant` (3:1-3:4 )" ,
1778+ "invalid-constant-visibility: `private_constant` called with a non-literal argument (6:20-6:29 )" ,
1779+ "invalid-constant-visibility: `private_constant` called with a non-literal argument (6:31 -6:42 )" ,
17801780 ]
17811781 ) ;
17821782
1783- assert_eq ! ( context. graph( ) . definitions( ) . len( ) , 3 ) ; // Foo, Foo::Qux, Foo#foo
1783+ assert_eq ! ( context. graph( ) . definitions( ) . len( ) , 3 ) ; // Foo, Foo.qux, Foo#foo
1784+ }
1785+
1786+ #[ test]
1787+ fn index_public_constant_calls_diagnostics ( ) {
1788+ let context = index_source ( {
1789+ "
1790+ public_constant :BAR # not indexed, called at top level
1791+ self.public_constant :BAR # not indexed, self receiver at top level
1792+ foo.public_constant :BAR # not indexed, dynamic receiver
1793+
1794+ module Foo
1795+ public_constant SomeConst, some_method # not indexed, non-literal arguments
1796+ public_constant # not indexed, no arguments
1797+
1798+ def self.qux
1799+ public_constant :BAR # not indexed, inside a method
1800+ end
1801+
1802+ def foo
1803+ public_constant :BAR # not indexed, inside a method
1804+ end
1805+ end
1806+ "
1807+ } ) ;
1808+
1809+ assert_local_diagnostics_eq ! (
1810+ & context,
1811+ vec![
1812+ "invalid-constant-visibility: `public_constant` called at top level (1:1-1:21)" ,
1813+ "invalid-constant-visibility: `public_constant` called at top level (2:1-2:26)" ,
1814+ "invalid-constant-visibility: Dynamic receiver for `public_constant` (3:1-3:4)" ,
1815+ "invalid-constant-visibility: `public_constant` called with a non-literal argument (6:19-6:28)" ,
1816+ "invalid-constant-visibility: `public_constant` called with a non-literal argument (6:30-6:41)" ,
1817+ ]
1818+ ) ;
1819+
1820+ assert_eq ! ( context. graph( ) . definitions( ) . len( ) , 3 ) ; // Foo, Foo.qux, Foo#foo
17841821 }
17851822
17861823 #[ test]
0 commit comments