| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | # typed: strict | 
					
						
							| 
									
										
										
										
											2021-01-06 09:11:34 -08:00
										 |  |  | # frozen_string_literal: true | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-09 02:15:28 +02:00
										 |  |  | require "macos_version" | 
					
						
							| 
									
										
										
										
											2022-06-30 13:36:16 -04:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | FORMULA_COMPONENT_PRECEDENCE_LIST = T.let([ | 
					
						
							| 
									
										
										
										
											2021-01-06 09:11:34 -08:00
										 |  |  |   [{ name: :include,   type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :desc,      type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :homepage,  type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :url,       type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :mirror,    type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :version,   type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :sha256,    type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :license, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :revision, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :version_scheme, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :head,      type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :stable,    type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :livecheck, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :bottle,    type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :pour_bottle?, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :head,      type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :bottle,    type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :keg_only,  type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :option,    type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :deprecated_option, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :disable!, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :deprecate!, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :depends_on, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :uses_from_macos, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :on_macos, type: :block_call }], | 
					
						
							| 
									
										
										
										
											2023-05-09 02:15:28 +02:00
										 |  |  |   *MacOSVersion::SYMBOLS.keys.map do |os_name| | 
					
						
							| 
									
										
										
										
											2022-07-11 01:51:18 -04:00
										 |  |  |     [{ name: :"on_#{os_name}", type: :block_call }] | 
					
						
							|  |  |  |   end, | 
					
						
							|  |  |  |   [{ name: :on_system, type: :block_call }], | 
					
						
							| 
									
										
										
										
											2021-01-06 09:11:34 -08:00
										 |  |  |   [{ name: :on_linux, type: :block_call }], | 
					
						
							| 
									
										
										
										
											2022-06-30 13:36:16 -04:00
										 |  |  |   [{ name: :on_arm, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :on_intel, type: :block_call }], | 
					
						
							| 
									
										
										
										
											2021-01-06 09:11:34 -08:00
										 |  |  |   [{ name: :conflicts_with, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :skip_clean, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :cxxstdlib_check, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :link_overwrite, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :fails_with, type: :method_call }, { name: :fails_with, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :go_resource, type: :block_call }, { name: :resource, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :patch, type: :method_call }, { name: :patch, type: :block_call }], | 
					
						
							|  |  |  |   [{ name: :needs, type: :method_call }], | 
					
						
							| 
									
										
										
										
											2024-04-22 22:48:08 -04:00
										 |  |  |   [{ name: :allow_network_access!, type: :method_call }], | 
					
						
							|  |  |  |   [{ name: :deny_network_access!, type: :method_call }], | 
					
						
							| 
									
										
										
										
											2021-01-06 09:11:34 -08:00
										 |  |  |   [{ name: :install, type: :method_definition }], | 
					
						
							|  |  |  |   [{ name: :post_install, type: :method_definition }], | 
					
						
							|  |  |  |   [{ name: :caveats, type: :method_definition }], | 
					
						
							|  |  |  |   [{ name: :plist_options, type: :method_call }, { name: :plist, type: :method_definition }], | 
					
						
							|  |  |  |   [{ name: :test, type: :block_call }], | 
					
						
							| 
									
										
										
										
											2023-08-08 13:54:59 -07:00
										 |  |  | ].freeze, T::Array[[{ name: Symbol, type: Symbol }]]) |