From aa26fb1ecb8c10bbc899f8b38e0c33789aadc8ad Mon Sep 17 00:00:00 2001 From: Varun Gandhi Date: Tue, 27 Sep 2022 19:47:17 +0800 Subject: [PATCH] fix: Fix sorting determinism. --- scip_indexer/SCIPProtoExt.cc | 12 ++++----- test/scip/testdata/args.snapshot.rb | 4 +-- .../testdata/blocks_lambdas_procs.snapshot.rb | 16 ++++++------ test/scip/testdata/cattr.snapshot.rb | 14 +++++----- test/scip/testdata/def_delegator.snapshot.rb | 4 +-- test/scip/testdata/encrypted_prop.snapshot.rb | 4 +-- .../testdata/field_inheritance.snapshot.rb | 4 +-- .../testdata/fields_and_attrs.snapshot.rb | 2 +- test/scip/testdata/flatfile_dsl.snapshot.rb | 2 +- test/scip/testdata/for.snapshot.rb | 4 +-- test/scip/testdata/hoverdocs.snapshot.rb | 2 +- test/scip/testdata/mattr.snapshot.rb | 14 +++++----- test/scip/testdata/prop.snapshot.rb | 26 +++++++++---------- test/scip/testdata/struct.snapshot.rb | 6 ++--- 14 files changed, 57 insertions(+), 57 deletions(-) diff --git a/scip_indexer/SCIPProtoExt.cc b/scip_indexer/SCIPProtoExt.cc index 6e91fd218..dd4819730 100644 --- a/scip_indexer/SCIPProtoExt.cc +++ b/scip_indexer/SCIPProtoExt.cc @@ -3,12 +3,12 @@ #include namespace scip { -#define CHECK_CMP(expr) \ - { \ - auto cmp = expr; \ - if (cmp != 0) { \ - return cmp < 0; \ - } \ +#define CHECK_CMP(expr) \ + { \ + auto cmp = expr; \ + if (cmp != 0) { \ + return cmp; \ + } \ } int compareDiagnostic(const scip::Diagnostic &d1, const scip::Diagnostic &d2) { diff --git a/test/scip/testdata/args.snapshot.rb b/test/scip/testdata/args.snapshot.rb index 289a10aec..fd4be4b41 100644 --- a/test/scip/testdata/args.snapshot.rb +++ b/test/scip/testdata/args.snapshot.rb @@ -12,13 +12,13 @@ def args(x, y) # ^ reference local 1~#2634721084 # ^^ reference [..] BasicObject#`==`(). z += y -# ^ reference local 3~#2634721084 # ^ reference (write) local 3~#2634721084 +# ^ reference local 3~#2634721084 # ^ reference local 2~#2634721084 else z += x -# ^ reference local 3~#2634721084 # ^ reference (write) local 3~#2634721084 +# ^ reference local 3~#2634721084 # ^ reference local 1~#2634721084 end z diff --git a/test/scip/testdata/blocks_lambdas_procs.snapshot.rb b/test/scip/testdata/blocks_lambdas_procs.snapshot.rb index d0f281e37..bfb0055fa 100644 --- a/test/scip/testdata/blocks_lambdas_procs.snapshot.rb +++ b/test/scip/testdata/blocks_lambdas_procs.snapshot.rb @@ -7,16 +7,16 @@ def blk [].each { |x| # ^ definition local 2~#1472469056 y += x -# ^ reference local 1~#1472469056 # ^ reference (write) local 1~#1472469056 +# ^ reference local 1~#1472469056 # ^^^^^^ reference local 1~#1472469056 # ^ reference local 2~#1472469056 } [].each do |x| # ^ definition local 3~#1472469056 y += x -# ^ reference local 1~#1472469056 # ^ reference (write) local 1~#1472469056 +# ^ reference local 1~#1472469056 # ^^^^^^ reference local 1~#1472469056 # ^ reference local 3~#1472469056 end @@ -32,8 +32,8 @@ def lam # ^^ reference [..] Kernel#lambda(). # ^ definition local 3~#1499497673 y += x -# ^ reference local 1~#1499497673 # ^ reference (write) local 1~#1499497673 +# ^ reference local 1~#1499497673 # ^^^^^^ reference local 1~#1499497673 # ^ reference local 3~#1499497673 } @@ -53,8 +53,8 @@ def lam # ^^ reference [..] Kernel#lambda(). # ^^ definition local 8~#1499497673 y += x -# ^ reference local 1~#1499497673 # ^ reference (write) local 1~#1499497673 +# ^ reference local 1~#1499497673 # ^^^^^^ reference local 1~#1499497673 # ^ reference local 8~#1499497673 } @@ -63,8 +63,8 @@ def lam # ^^^^^^ reference [..] Kernel#lambda(). # ^^ definition local 10~#1499497673 y += x -# ^ reference local 1~#1499497673 # ^ reference (write) local 1~#1499497673 +# ^ reference local 1~#1499497673 # ^^^^^^ reference local 1~#1499497673 # ^ reference local 10~#1499497673 } @@ -102,8 +102,8 @@ def prc # ^^^^ reference [..] Kernel#proc(). # ^ definition local 5~#1283111692 y += x -# ^ reference local 1~#1283111692 # ^ reference (write) local 1~#1283111692 +# ^ reference local 1~#1283111692 # ^^^^^^ reference local 1~#1283111692 # ^ reference local 5~#1283111692 } @@ -113,8 +113,8 @@ def prc # ^^^ reference [..] ``#new(). # ^^ definition local 8~#1283111692 y += x -# ^ reference local 1~#1283111692 # ^ reference (write) local 1~#1283111692 +# ^ reference local 1~#1283111692 # ^^^^^^ reference local 1~#1283111692 # ^ reference local 8~#1283111692 } @@ -123,8 +123,8 @@ def prc # ^^^^ reference [..] Kernel#proc(). # ^^ definition local 10~#1283111692 y += x -# ^ reference local 1~#1283111692 # ^ reference (write) local 1~#1283111692 +# ^ reference local 1~#1283111692 # ^^^^^^ reference local 1~#1283111692 # ^ reference local 10~#1283111692 } diff --git a/test/scip/testdata/cattr.snapshot.rb b/test/scip/testdata/cattr.snapshot.rb index 10eb9fbc4..80f23bdf2 100644 --- a/test/scip/testdata/cattr.snapshot.rb +++ b/test/scip/testdata/cattr.snapshot.rb @@ -65,28 +65,28 @@ class CA extend T::Sig # ^^^^^^ reference [..] Kernel#extend(). cattr_accessor :both, :foo +# ^^^^^ definition [..] CA#both(). # ^^^^^ definition [..] CA#`both=`(). # ^^^^^ definition [..] ``#`both=`(). # ^^^^^ definition [..] ``#both(). -# ^^^^^ definition [..] CA#both(). -# ^^^^ definition [..] CA#foo(). -# ^^^^ definition [..] ``#foo(). # ^^^^ definition [..] CA#`foo=`(). +# ^^^^ definition [..] CA#foo(). # ^^^^ definition [..] ``#`foo=`(). +# ^^^^ definition [..] ``#foo(). cattr_accessor :no_instance, instance_accessor: false -# ^^^^^^^^^^^^ definition [..] ``#no_instance(). # ^^^^^^^^^^^^ definition [..] ``#`no_instance=`(). +# ^^^^^^^^^^^^ definition [..] ``#no_instance(). cattr_accessor :no_instance_reader, instance_reader: false -# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_reader(). # ^^^^^^^^^^^^^^^^^^^ definition [..] CA#`no_instance_reader=`(). # ^^^^^^^^^^^^^^^^^^^ definition [..] ``#`no_instance_reader=`(). +# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_reader(). cattr_accessor :bar, :no_instance_writer, instance_writer: false # ^^^^ definition [..] CA#bar(). -# ^^^^ definition [..] ``#bar(). # ^^^^ definition [..] ``#`bar=`(). -# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_writer(). +# ^^^^ definition [..] ``#bar(). # ^^^^^^^^^^^^^^^^^^^ definition [..] CA#no_instance_writer(). # ^^^^^^^^^^^^^^^^^^^ definition [..] ``#`no_instance_writer=`(). +# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_writer(). sig {void} def usages diff --git a/test/scip/testdata/def_delegator.snapshot.rb b/test/scip/testdata/def_delegator.snapshot.rb index 5444c49a3..5886ee237 100644 --- a/test/scip/testdata/def_delegator.snapshot.rb +++ b/test/scip/testdata/def_delegator.snapshot.rb @@ -22,8 +22,8 @@ class MyArray2 extend T::Sig # ^^^^^^ reference [..] Kernel#extend(). attr_accessor :inner_array -# ^^^^^^^^^^^ definition [..] MyArray2#inner_array(). # ^^^^^^^^^^^ definition [..] MyArray2#`inner_array=`(). +# ^^^^^^^^^^^ definition [..] MyArray2#inner_array(). extend Forwardable # ^^^^^^ reference [..] Kernel#extend(). # ^^^^^^^^^^^ reference [..] Forwardable# @@ -36,8 +36,8 @@ class MyArray2 class MyArray3 # ^^^^^^^^ definition [..] MyArray3# attr_accessor :inner_array -# ^^^^^^^^^^^ definition [..] MyArray3#inner_array(). # ^^^^^^^^^^^ definition [..] MyArray3#`inner_array=`(). +# ^^^^^^^^^^^ definition [..] MyArray3#inner_array(). extend Forwardable # ^^^^^^ reference [..] Kernel#extend(). # ^^^^^^^^^^^ reference [..] Forwardable# diff --git a/test/scip/testdata/encrypted_prop.snapshot.rb b/test/scip/testdata/encrypted_prop.snapshot.rb index 9ca820c54..808bf4503 100644 --- a/test/scip/testdata/encrypted_prop.snapshot.rb +++ b/test/scip/testdata/encrypted_prop.snapshot.rb @@ -26,14 +26,14 @@ def self.encrypted_prop(opts={}); end # ^^^^^^^^^^^^^^ definition [..] ``#encrypted_prop(). encrypted_prop :foo # ^^^^^^^^^^^^^^^^^^^ reference [..] String# -# ^^^ definition [..] EncryptedProp#encrypted_foo(). # ^^^ definition [..] EncryptedProp#`encrypted_foo=`(). # ^^^ definition [..] EncryptedProp#`foo=`(). +# ^^^ definition [..] EncryptedProp#encrypted_foo(). # ^^^ definition [..] EncryptedProp#foo(). encrypted_prop :bar, migrating: true, immutable: true # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] String# -# ^^^ definition [..] EncryptedProp#encrypted_bar(). # ^^^ definition [..] EncryptedProp#bar(). +# ^^^ definition [..] EncryptedProp#encrypted_bar(). end diff --git a/test/scip/testdata/field_inheritance.snapshot.rb b/test/scip/testdata/field_inheritance.snapshot.rb index e28d8a717..8e5959812 100644 --- a/test/scip/testdata/field_inheritance.snapshot.rb +++ b/test/scip/testdata/field_inheritance.snapshot.rb @@ -6,11 +6,11 @@ class C1 # ^^ definition [..] C1# attr_accessor :h -# ^ definition [..] C1#h(). # ^ definition [..] C1#`h=`(). +# ^ definition [..] C1#h(). attr_accessor :i -# ^ definition [..] C1#i(). # ^ definition [..] C1#`i=`(). +# ^ definition [..] C1#i(). def set_ivar # ^^^^^^^^ definition [..] C1#set_ivar(). diff --git a/test/scip/testdata/fields_and_attrs.snapshot.rb b/test/scip/testdata/fields_and_attrs.snapshot.rb index 1badd65c8..ac6284252 100644 --- a/test/scip/testdata/fields_and_attrs.snapshot.rb +++ b/test/scip/testdata/fields_and_attrs.snapshot.rb @@ -96,8 +96,8 @@ def m3 class P # ^ definition [..] P# attr_accessor :a -# ^ definition [..] P#a(). # ^ definition [..] P#`a=`(). +# ^ definition [..] P#a(). attr_reader :r # ^ definition [..] P#r(). attr_writer :w diff --git a/test/scip/testdata/flatfile_dsl.snapshot.rb b/test/scip/testdata/flatfile_dsl.snapshot.rb index b8dc0624e..d82265645 100644 --- a/test/scip/testdata/flatfile_dsl.snapshot.rb +++ b/test/scip/testdata/flatfile_dsl.snapshot.rb @@ -19,8 +19,8 @@ class Flatfile < Record # ^^^^^^^^ reference [..] ``#flatfile(). from 1..2, :foo # ^^^^ reference [..] ``#from(). -# ^^^^ definition [..] Flatfile#foo(). # ^^^^ definition [..] Flatfile#`foo=`(). +# ^^^^ definition [..] Flatfile#foo(). pattern(/A-Za-z/, :bar) # ^^^^^^^ reference [..] ``#pattern(). # ^^^^^^^^ reference [..] Regexp# diff --git a/test/scip/testdata/for.snapshot.rb b/test/scip/testdata/for.snapshot.rb index 77446a45f..ae0607d5c 100644 --- a/test/scip/testdata/for.snapshot.rb +++ b/test/scip/testdata/for.snapshot.rb @@ -7,14 +7,14 @@ def for_loop() for x in [1, 2, 3] # ^ definition local 2~#1120785331 y += x -# ^ reference local 1~#1120785331 # ^ reference (write) local 1~#1120785331 +# ^ reference local 1~#1120785331 # ^ reference local 2~#1120785331 for x in [3, 4, 5] # ^ definition local 3~#1120785331 y += x -# ^ reference local 1~#1120785331 # ^ reference (write) local 1~#1120785331 +# ^ reference local 1~#1120785331 # ^^^^^^ reference local 1~#1120785331 # ^^ reference [..] Integer#+(). # ^ reference local 3~#1120785331 diff --git a/test/scip/testdata/hoverdocs.snapshot.rb b/test/scip/testdata/hoverdocs.snapshot.rb index f4c40d348..ccea53e4f 100644 --- a/test/scip/testdata/hoverdocs.snapshot.rb +++ b/test/scip/testdata/hoverdocs.snapshot.rb @@ -381,8 +381,8 @@ def p1 # | @@y (T.untyped) # | ``` @z += @x -# ^^ reference [..] K2#`@z`. # ^^ reference (write) [..] K2#`@z`. +# ^^ reference [..] K2#`@z`. # ^^^^^^^^ reference [..] K2#`@z`. # ^^ reference [..] K1#`@x`. # override_documentation diff --git a/test/scip/testdata/mattr.snapshot.rb b/test/scip/testdata/mattr.snapshot.rb index 754657747..ad80c3a2c 100644 --- a/test/scip/testdata/mattr.snapshot.rb +++ b/test/scip/testdata/mattr.snapshot.rb @@ -65,28 +65,28 @@ class MA extend T::Sig # ^^^^^^ reference [..] Kernel#extend(). mattr_accessor :both, :foo +# ^^^^^ definition [..] MA#both(). # ^^^^^ definition [..] MA#`both=`(). # ^^^^^ definition [..] ``#`both=`(). # ^^^^^ definition [..] ``#both(). -# ^^^^^ definition [..] MA#both(). -# ^^^^ definition [..] MA#foo(). -# ^^^^ definition [..] ``#foo(). # ^^^^ definition [..] MA#`foo=`(). +# ^^^^ definition [..] MA#foo(). # ^^^^ definition [..] ``#`foo=`(). +# ^^^^ definition [..] ``#foo(). mattr_accessor :no_instance, instance_accessor: false -# ^^^^^^^^^^^^ definition [..] ``#no_instance(). # ^^^^^^^^^^^^ definition [..] ``#`no_instance=`(). +# ^^^^^^^^^^^^ definition [..] ``#no_instance(). mattr_accessor :no_instance_reader, instance_reader: false -# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_reader(). # ^^^^^^^^^^^^^^^^^^^ definition [..] MA#`no_instance_reader=`(). # ^^^^^^^^^^^^^^^^^^^ definition [..] ``#`no_instance_reader=`(). +# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_reader(). mattr_accessor :bar, :no_instance_writer, instance_writer: false # ^^^^ definition [..] MA#bar(). -# ^^^^ definition [..] ``#bar(). # ^^^^ definition [..] ``#`bar=`(). -# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_writer(). +# ^^^^ definition [..] ``#bar(). # ^^^^^^^^^^^^^^^^^^^ definition [..] MA#no_instance_writer(). # ^^^^^^^^^^^^^^^^^^^ definition [..] ``#`no_instance_writer=`(). +# ^^^^^^^^^^^^^^^^^^^ definition [..] ``#no_instance_writer(). sig {void} def usages diff --git a/test/scip/testdata/prop.snapshot.rb b/test/scip/testdata/prop.snapshot.rb index 86db76333..230a9782e 100644 --- a/test/scip/testdata/prop.snapshot.rb +++ b/test/scip/testdata/prop.snapshot.rb @@ -8,8 +8,8 @@ class SomeODM # ^^^^^^^ reference [..] Module#include(). prop :foo, String -# ^^^ definition [..] SomeODM#foo(). # ^^^ definition [..] SomeODM#`foo=`(). +# ^^^ definition [..] SomeODM#foo(). # ^^^^^^ reference [..] String# sig {returns(T.nilable(String))} @@ -40,17 +40,17 @@ class AdvancedODM include T::Props # ^^^^^^^ reference [..] Module#include(). prop :default, String, default: "" -# ^^^^^^^ definition [..] AdvancedODM#default(). # ^^^^^^^ definition [..] AdvancedODM#`default=`(). +# ^^^^^^^ definition [..] AdvancedODM#default(). # ^^^^^^ reference [..] String# prop :t_nilable, T.nilable(String) -# ^^^^^^^^^ definition [..] AdvancedODM#t_nilable(). # ^^^^^^^^^ definition [..] AdvancedODM#`t_nilable=`(). +# ^^^^^^^^^ definition [..] AdvancedODM#t_nilable(). # ^^^^^^ reference [..] String# prop :array, Array -# ^^^^^ definition [..] AdvancedODM#array(). # ^^^^^ definition [..] AdvancedODM#`array=`(). +# ^^^^^ definition [..] AdvancedODM#array(). # ^^^^^ reference [..] Array# prop :t_array, T::Array[String] # ^^^^^^^ definition [..] AdvancedODM#`t_array=`(). @@ -76,29 +76,29 @@ class AdvancedODM prop :foreign_lazy, String, foreign: -> {ForeignClass} # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] T#Boolean. +# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_lazy=`(). # ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_lazy_!`(). # ^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_lazy(). -# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_lazy=`(). # ^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_lazy_(). # ^^^^^^ reference [..] String# -# ^^ reference [..] Kernel#lambda(). # ^^ reference [..] Kernel# +# ^^ reference [..] Kernel#lambda(). # ^^^^^^^^^^^^ reference [..] ForeignClass# prop :foreign_proc, String, foreign: proc {ForeignClass} # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] T#Boolean. +# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_proc=`(). +# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_proc_!`(). # ^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_proc(). # ^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_proc_(). -# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_proc_!`(). -# ^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_proc=`(). # ^^^^^^ reference [..] String# # ^^^^ reference [..] Kernel#proc(). # ^^^^^^^^^^^^ reference [..] ForeignClass# prop :foreign_invalid, String, foreign: proc { :not_a_type } # ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ reference [..] T#Boolean. +# ^^^^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_invalid=`(). # ^^^^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_invalid_!`(). # ^^^^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_invalid(). # ^^^^^^^^^^^^^^^ definition [..] AdvancedODM#foreign_invalid_(). -# ^^^^^^^^^^^^^^^ definition [..] AdvancedODM#`foreign_invalid=`(). # ^^^^^^ reference [..] String# # ^^^^ reference [..] Kernel#proc(). @@ -132,13 +132,13 @@ def self.created_prop(opts={}); end token_prop # ^^^^^ definition [..] PropHelpers#`token=`(). # ^^^^^ definition [..] PropHelpers#token(). -# ^^^^^^^^^^ reference [..] ``#token_prop(). # ^^^^^^^^^^ reference [..] String# +# ^^^^^^^^^^ reference [..] ``#token_prop(). created_prop -# ^^^^^^^ definition [..] PropHelpers#created(). # ^^^^^^^ definition [..] PropHelpers#`created=`(). -# ^^^^^^^^^^^^ reference [..] ``#created_prop(). +# ^^^^^^^ definition [..] PropHelpers#created(). # ^^^^^^^^^^^^ reference [..] Float# +# ^^^^^^^^^^^^ reference [..] ``#created_prop(). end class PropHelpers2 @@ -150,8 +150,8 @@ def self.timestamped_token_prop(opts={}); end def self.created_prop(opts={}); end # ^^^^^^^^^^^^ definition [..] ``#created_prop(). timestamped_token_prop -# ^^^^^^^^^^^^^^^^^^^^^^ reference [..] ``#timestamped_token_prop(). # ^^^^^^^^^^^^^^^^^^^^^^ reference [..] String# +# ^^^^^^^^^^^^^^^^^^^^^^ reference [..] ``#timestamped_token_prop(). # ^^^^^ definition [..] PropHelpers2#`token=`(). # ^^^^^ definition [..] PropHelpers2#token(). created_prop(immutable: true) diff --git a/test/scip/testdata/struct.snapshot.rb b/test/scip/testdata/struct.snapshot.rb index e75e5c725..a27a45559 100644 --- a/test/scip/testdata/struct.snapshot.rb +++ b/test/scip/testdata/struct.snapshot.rb @@ -7,8 +7,8 @@ class S < T::Struct # ^ reference [..] T# # ^^^^^^ definition [..] T#Struct# prop :prop_i, Integer -# ^^^^^^ definition [..] S#prop_i(). # ^^^^^^ definition [..] S#`prop_i=`(). +# ^^^^^^ definition [..] S#prop_i(). # ^^^^^^^ reference [..] Integer# const :const_s, T.nilable(String) # ^^^^^^^ definition [..] S#const_s(). @@ -52,11 +52,11 @@ def f #^^^^^^^^^^^^^^^^^^^^ definition local 5~#119448696 #^^^^^^^^^^^^^^^^^^^^ definition [..] POINT#initialize(). # ^ reference [..] BasicObject# -# ^ definition [..] POINT#x(). # ^ definition [..] POINT#`x=`(). +# ^ definition [..] POINT#x(). # ^ reference [..] BasicObject# -# ^ definition [..] POINT#y(). # ^ definition [..] POINT#`y=`(). +# ^ definition [..] POINT#y(). def array # ^^^^^ definition [..] POINT#array(). [x, y]