mirror of
				https://github.com/ethereum/solidity
				synced 2023-10-03 13:03:40 +00:00 
			
		
		
		
	[SMTChecker] Assert type is not function when assigning
This commit is contained in:
		
							parent
							
								
									f003696d7e
								
							
						
					
					
						commit
						22cdfb18d4
					
				| @ -1371,7 +1371,7 @@ void SMTChecker::createExpr(Expression const& _e) | ||||
| void SMTChecker::defineExpr(Expression const& _e, smt::Expression _value) | ||||
| { | ||||
| 	createExpr(_e); | ||||
| 	solAssert(isSupportedType(*_e.annotation().type), "Equality operator applied to type that is not fully supported"); | ||||
| 	solAssert(smtKind(_e.annotation().type->category()) != smt::Kind::Function, "Equality operator applied to type that is not fully supported"); | ||||
| 	m_interface->addAssertion(expr(_e) == _value); | ||||
| } | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										24
									
								
								test/libsolidity/smtCheckerTests/types/struct_1.sol
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								test/libsolidity/smtCheckerTests/types/struct_1.sol
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,24 @@ | ||||
| pragma experimental SMTChecker; | ||||
| 
 | ||||
| contract C | ||||
| { | ||||
| 	struct S { | ||||
| 		uint x; | ||||
| 	} | ||||
| 
 | ||||
| 	mapping (uint => S) smap; | ||||
| 
 | ||||
| 	function f(uint y, uint v) public { | ||||
| 		smap[y] = S(v); | ||||
| 		S memory smem = S(v); | ||||
| 	} | ||||
| } | ||||
| // ---- | ||||
| // Warning: (157-170): Unused local variable. | ||||
| // Warning: (157-170): Assertion checker does not yet support the type of this variable. | ||||
| // Warning: (139-146): Assertion checker does not yet implement this type. | ||||
| // Warning: (149-153): Assertion checker does not yet implement this expression. | ||||
| // Warning: (139-153): Assertion checker does not yet implement type struct C.S storage ref | ||||
| // Warning: (173-177): Assertion checker does not yet implement this expression. | ||||
| // Warning: (173-177): Internal error: Expression undefined for SMT solver. | ||||
| // Warning: (173-177): Assertion checker does not yet implement this type. | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user