summaryrefslogtreecommitdiff
path: root/test/ruby
diff options
context:
space:
mode:
authorJemma Issroff <jemmaissroff@gmail.com>2023-12-06 11:05:43 -0500
committerJemma Issroff <jemmaissroff@gmail.com>2023-12-06 11:31:43 -0500
commitf80262b14d01a977ce386a5a377e911a90ce328d (patch)
tree785407ea3e991fb4ab05e33e12d9c3fbb6f9371c /test/ruby
parent64ab04da6ae15243e1615739f2529f37e532943d (diff)
[PRISM] Account for nil parent in Call{Operator,And,Or}PathWriteNodes
Prior to this commit, we were not accounting for the case of a nil parent in a CallXPathWriteNode, for example ::A ||= 1. This commit checks if the parent exists, and if not, uses Object as the inferred parent
Diffstat (limited to 'test/ruby')
-rw-r--r--test/ruby/test_compile_prism.rb3
1 files changed, 3 insertions, 0 deletions
diff --git a/test/ruby/test_compile_prism.rb b/test/ruby/test_compile_prism.rb
index 8c74003f5e..62edb329bc 100644
--- a/test/ruby/test_compile_prism.rb
+++ b/test/ruby/test_compile_prism.rb
@@ -253,15 +253,18 @@ module Prism
def test_ConstantPathAndWriteNode
assert_prism_eval("Prism::CPAWN = 1; Prism::CPAWN &&= 2")
assert_prism_eval("Prism::CPAWN &&= 1")
+ assert_prism_eval("::CPAWN = 1; ::CPAWN &&= 2")
end
def test_ConstantPathOrWriteNode
assert_prism_eval("Prism::CPOrWN = nil; Prism::CPOrWN ||= 1")
assert_prism_eval("Prism::CPOrWN ||= 1")
+ assert_prism_eval("::CPOrWN = nil; ::CPOrWN ||= 1")
end
def test_ConstantPathOperatorWriteNode
assert_prism_eval("Prism::CPOWN = 0; Prism::CPOWN += 1")
+ assert_prism_eval("::CPOWN = 0; ::CPOWN += 1")
end
def test_GlobalVariableAndWriteNode