Skip to content

Commit d1a4161

Browse files
authored
Merge pull request CosmWasm#1534 from CosmWasm/fix-QueryResponses-path-in-generate_api
Fix QueryResponse path in generate_api
2 parents d1d3643 + 40b05d3 commit d1a4161

File tree

3 files changed

+35
-2
lines changed

3 files changed

+35
-2
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ and this project adheres to
66

77
## [Unreleased]
88

9+
### Fixed
10+
11+
- cosmwasm-schema: Fix type fully qualified path to symbol `QueryResponses` in
12+
macro `cosmwasm_schema::generate_api!` ([#1527]).
13+
14+
[#1527]: https://github.com/CosmWasm/cosmwasm/issues/1527
15+
916
## [1.1.8] - 2022-11-22
1017

1118
### Fixed

packages/schema-derive/src/generate_api.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ impl Parse for Options {
166166
let ty = ty.unwrap_type();
167167
(
168168
quote! {Some(::cosmwasm_schema::schema_for!(#ty))},
169-
quote! { Some(<#ty as QueryResponses>::response_schemas().unwrap()) },
169+
quote! { Some(<#ty as ::cosmwasm_schema::QueryResponses>::response_schemas().unwrap()) },
170170
)
171171
}
172172
None => (quote! { None }, quote! { None }),
@@ -272,7 +272,7 @@ mod tests {
272272
query: Some(::cosmwasm_schema::schema_for!(QueryMsg)),
273273
migrate: Some(::cosmwasm_schema::schema_for!(MigrateMsg)),
274274
sudo: Some(::cosmwasm_schema::schema_for!(SudoMsg)),
275-
responses: Some(<QueryMsg as QueryResponses>::response_schemas().unwrap()),
275+
responses: Some(<QueryMsg as ::cosmwasm_schema::QueryResponses>::response_schemas().unwrap()),
276276
}
277277
}
278278
);

packages/schema/tests/idl.rs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,32 @@ fn test_basic_structure() {
7777
);
7878
}
7979

80+
// Test to reproduce https://github.com/CosmWasm/cosmwasm/issues/1527
81+
#[test]
82+
fn generate_api_works_when_only_types_are_imported() {
83+
mod my_api_generator {
84+
// Note super::QueryResponses is not imported in that case.
85+
use super::generate_api;
86+
use super::{ExecuteMsg, InstantiateMsg, MigrateMsg, QueryMsg, SudoMsg};
87+
88+
pub fn generate() {
89+
let _api_str = generate_api! {
90+
name: "test",
91+
version: "0.1.0",
92+
instantiate: InstantiateMsg,
93+
query: QueryMsg,
94+
execute: ExecuteMsg,
95+
sudo: SudoMsg,
96+
migrate: MigrateMsg,
97+
}
98+
.render()
99+
.to_string()
100+
.unwrap();
101+
}
102+
}
103+
my_api_generator::generate();
104+
}
105+
80106
#[test]
81107
fn test_query_responses() {
82108
let api_str = generate_api! {

0 commit comments

Comments
 (0)