class Bpl::ModifiesCorrection
Public Instance Methods
run!(program)
click to toggle source
# File lib/bpl/passes/annotation/modifies_correction.rb, line 7 def run! program program.declarations.each do |proc| next unless proc.is_a?(ProcedureDeclaration) proc.specifications.dup.each do |sp| sp.remove if sp.is_a?(ModifiesClause) end if proc.body mods = modification.modifies[proc] proc.append_children(:specifications, bpl("modifies #{mods.to_a.sort * ", "};")) unless mods.empty? invalidates :resolution end end