diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp index 3ac4e2fa2..b3270f5be 100644 --- a/libsolidity/interface/CompilerStack.cpp +++ b/libsolidity/interface/CompilerStack.cpp @@ -394,7 +394,8 @@ bool CompilerStack::isRequestedContract(ContractDefinition const& _contract) con return m_requestedContractNames.empty() || m_requestedContractNames.count(_contract.fullyQualifiedName()) || - m_requestedContractNames.count(_contract.name()); + m_requestedContractNames.count(_contract.name()) || + m_requestedContractNames.count(":" + _contract.name()); } bool CompilerStack::compile() diff --git a/test/cmdlineTests/standard_output_selection_wildcard/exit b/test/cmdlineTests/standard_output_selection_wildcard/exit new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard/exit @@ -0,0 +1 @@ +0 diff --git a/test/cmdlineTests/standard_output_selection_wildcard/input.json b/test/cmdlineTests/standard_output_selection_wildcard/input.json new file mode 100644 index 000000000..c25cda6ac --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard/input.json @@ -0,0 +1,17 @@ +{ + "language": "Solidity", + "sources": + { + "A": + { + "content": "pragma solidity >=0.0; contract C { function f() public pure {} }" + } + }, + "settings": + { + "outputSelection": + { + "*": { "C": ["evm.bytecode"] } + } + } +} diff --git a/test/cmdlineTests/standard_output_selection_wildcard/output.json b/test/cmdlineTests/standard_output_selection_wildcard/output.json new file mode 100644 index 000000000..60a7bfefc --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard/output.json @@ -0,0 +1 @@ +{"contracts":{"A":{"C":{"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50606c80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806326121ff014602d575b600080fd5b60336035565b005b56fea265627a7a7230582087d4510946029bfd3a2670eb83a4dca7fdbb7af036696c147e13b28ebba46f4c64736f6c63430005090032","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26121FF0 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 DUP8 0xd4 MLOAD MULMOD 0x46 MUL SWAP12 REVERT GASPRICE 0x26 PUSH17 0xEB83A4DCA7FDBB7AF036696C147E13B28E 0xbb LOG4 PUSH16 0x4C64736F6C6343000509003200000000 ","sourceMap":"23:42:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23:42:0;;;;;;;"}}}}},"sources":{"A":{"id":0}}} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_colon_source/exit b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/exit new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/exit @@ -0,0 +1 @@ +0 diff --git a/test/cmdlineTests/standard_output_selection_wildcard_colon_source/input.json b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/input.json new file mode 100644 index 000000000..b91363bf4 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/input.json @@ -0,0 +1,17 @@ +{ + "language": "Solidity", + "sources": + { + ":A": + { + "content": "pragma solidity >=0.0; contract C { function f() public pure {} }" + } + }, + "settings": + { + "outputSelection": + { + "*": { "C": ["evm.bytecode"] } + } + } +} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_colon_source/output.json b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/output.json new file mode 100644 index 000000000..2aada9a77 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_colon_source/output.json @@ -0,0 +1 @@ +{"contracts":{":A":{"C":{"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50606c80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806326121ff014602d575b600080fd5b60336035565b005b56fea265627a7a723058205df62248e4c1a2be8f54db1e6e028efaf724ca27ef4e0b5aba830b929008189e64736f6c63430005090032","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26121FF0 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0x5d 0xf6 0x22 0x48 0xe4 0xc1 LOG2 0xbe DUP16 SLOAD 0xdb 0x1e PUSH15 0x28EFAF724CA27EF4E0B5ABA830B92 SWAP1 ADDMOD XOR SWAP15 PUSH5 0x736F6C6343 STOP SDIV MULMOD STOP ORIGIN ","sourceMap":"23:42:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23:42:0;;;;;;;"}}}}},"sources":{":A":{"id":0}}} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_empty_source/exit b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/exit new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/exit @@ -0,0 +1 @@ +0 diff --git a/test/cmdlineTests/standard_output_selection_wildcard_empty_source/input.json b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/input.json new file mode 100644 index 000000000..8009b89fd --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/input.json @@ -0,0 +1,17 @@ +{ + "language": "Solidity", + "sources": + { + "": + { + "content": "pragma solidity >=0.0; contract C { function f() public pure {} }" + } + }, + "settings": + { + "outputSelection": + { + "*": { "C": ["evm.bytecode"] } + } + } +} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_empty_source/output.json b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/output.json new file mode 100644 index 000000000..709b683ff --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_empty_source/output.json @@ -0,0 +1 @@ +{"contracts":{"":{"C":{"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50606c80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806326121ff014602d575b600080fd5b60336035565b005b56fea265627a7a72305820c3874f256d1afd2072546ca2a84c07b0557ff27e95e29d7dc2c8df48323ed12d64736f6c63430005090032","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26121FF0 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 0xc3 DUP8 0x4f 0x25 PUSH14 0x1AFD2072546CA2A84C07B0557FF2 PUSH31 0x95E29D7DC2C8DF48323ED12D64736F6C634300050900320000000000000000 ","sourceMap":"23:42:0:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23:42:0;;;;;;;"}}}}},"sources":{"":{"id":0}}} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/exit b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/exit new file mode 100644 index 000000000..573541ac9 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/exit @@ -0,0 +1 @@ +0 diff --git a/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/input.json b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/input.json new file mode 100644 index 000000000..b0ff76401 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/input.json @@ -0,0 +1,21 @@ +{ + "language": "Solidity", + "sources": + { + "A": + { + "content": "pragma solidity >=0.0; contract C { function f() public pure {} }" + }, + "B": + { + "content": "pragma solidity >=0.0; contract D { function f() public pure {} }" + } + }, + "settings": + { + "outputSelection": + { + "*": { "D": ["evm.bytecode"] } + } + } +} diff --git a/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/output.json b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/output.json new file mode 100644 index 000000000..be87705a2 --- /dev/null +++ b/test/cmdlineTests/standard_output_selection_wildcard_multiple_sources/output.json @@ -0,0 +1 @@ +{"contracts":{"B":{"D":{"evm":{"bytecode":{"linkReferences":{},"object":"6080604052348015600f57600080fd5b50606c80601d6000396000f3fe6080604052348015600f57600080fd5b506004361060285760003560e01c806326121ff014602d575b600080fd5b60336035565b005b56fea265627a7a7230582042e5e084da71170ceed86bf99503222673f6a804dc428fe796adc8ed5d892d3364736f6c63430005090032","opcodes":"PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x6C DUP1 PUSH1 0x1D PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH1 0xF JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH1 0x28 JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0x26121FF0 EQ PUSH1 0x2D JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH1 0x33 PUSH1 0x35 JUMP JUMPDEST STOP JUMPDEST JUMP INVALID LOG2 PUSH6 0x627A7A723058 KECCAK256 TIMESTAMP 0xe5 0xe0 DUP5 0xda PUSH18 0x170CEED86BF99503222673F6A804DC428FE7 SWAP7 0xad 0xc8 0xed 0x5d DUP10 0x2d CALLER PUSH5 0x736F6C6343 STOP SDIV MULMOD STOP ORIGIN ","sourceMap":"23:42:1:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;23:42:1;;;;;;;"}}}}},"sources":{"A":{"id":0},"B":{"id":1}}}