mirror of
				https://gitea.invidious.io/iv-org/shard-ameba.git
				synced 2024-08-15 00:53:29 +00:00 
			
		
		
		
	Mark begin; end as empty expression
				
					
				
			This commit is contained in:
		
							parent
							
								
									fb398b5056
								
							
						
					
					
						commit
						b3a9ff2fa0
					
				
					 3 changed files with 32 additions and 0 deletions
				
			
		| 
						 | 
					@ -24,6 +24,12 @@ module Ameba
 | 
				
			||||||
        a = nil
 | 
					        a = nil
 | 
				
			||||||
        a = ""
 | 
					        a = ""
 | 
				
			||||||
        a = 0
 | 
					        a = 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        nil
 | 
				
			||||||
 | 
					        :any.nil?
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        begin "" end
 | 
				
			||||||
 | 
					        [nil] << nil
 | 
				
			||||||
      )
 | 
					      )
 | 
				
			||||||
      subject.catch(s).should be_valid
 | 
					      subject.catch(s).should be_valid
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
| 
						 | 
					@ -69,6 +75,25 @@ module Ameba
 | 
				
			||||||
        ()
 | 
					        ()
 | 
				
			||||||
      end
 | 
					      end
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					    it_detects_empty_expression %(
 | 
				
			||||||
 | 
					      def method
 | 
				
			||||||
 | 
					        begin
 | 
				
			||||||
 | 
					        end
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    it_detects_empty_expression %(
 | 
				
			||||||
 | 
					      begin; end
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    it_detects_empty_expression %(
 | 
				
			||||||
 | 
					      begin
 | 
				
			||||||
 | 
					        nil
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					    it_detects_empty_expression %(
 | 
				
			||||||
 | 
					      begin
 | 
				
			||||||
 | 
					        ()
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    it "reports rule, location and message" do
 | 
					    it "reports rule, location and message" do
 | 
				
			||||||
      s = Source.new %(
 | 
					      s = Source.new %(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -13,6 +13,7 @@ module Ameba::AST
 | 
				
			||||||
    Def,
 | 
					    Def,
 | 
				
			||||||
    EnumDef,
 | 
					    EnumDef,
 | 
				
			||||||
    ExceptionHandler,
 | 
					    ExceptionHandler,
 | 
				
			||||||
 | 
					    Expressions,
 | 
				
			||||||
    If,
 | 
					    If,
 | 
				
			||||||
    InstanceVar,
 | 
					    InstanceVar,
 | 
				
			||||||
    LibDef,
 | 
					    LibDef,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,5 +42,11 @@ module Ameba::Rule
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      source.error self, node.location, "Avoid empty expression '#{exp}'"
 | 
					      source.error self, node.location, "Avoid empty expression '#{exp}'"
 | 
				
			||||||
    end
 | 
					    end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    def test(source, node : Crystal::Expressions)
 | 
				
			||||||
 | 
					      if node.expressions.size == 1 && node.expressions.first.nop?
 | 
				
			||||||
 | 
					        source.error self, node.location, "Avoid empty expressions"
 | 
				
			||||||
 | 
					      end
 | 
				
			||||||
 | 
					    end
 | 
				
			||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue