Start CI, disable docs building

This commit is contained in:
Emil Fresk 2023-01-08 21:33:44 +01:00 committed by Henrik Tjäder
parent c40c89bb4e
commit 95e4949680
14 changed files with 299 additions and 313 deletions

View file

@ -39,7 +39,7 @@ jobs:
- thumbv6m-none-eabi - thumbv6m-none-eabi
- x86_64-unknown-linux-gnu - x86_64-unknown-linux-gnu
toolchain: toolchain:
- stable - nightly
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -93,7 +93,7 @@ jobs:
- thumbv8m.base-none-eabi - thumbv8m.base-none-eabi
- thumbv8m.main-none-eabi - thumbv8m.main-none-eabi
toolchain: toolchain:
- stable - nightly
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -125,7 +125,7 @@ jobs:
- thumbv7m-none-eabi - thumbv7m-none-eabi
- thumbv6m-none-eabi - thumbv6m-none-eabi
toolchain: toolchain:
- stable - nightly
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -168,7 +168,7 @@ jobs:
target: target:
- x86_64-unknown-linux-gnu - x86_64-unknown-linux-gnu
toolchain: toolchain:
- stable - nightly
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v3 uses: actions/checkout@v3
@ -224,276 +224,276 @@ jobs:
- name: Run cargo test - name: Run cargo test
run: cargo test --test tests run: cargo test --test tests
# Build documentation, check links # # Build documentation, check links
docs: # docs:
name: docs # name: docs
runs-on: ubuntu-22.04 # runs-on: ubuntu-22.04
steps: # steps:
- name: Checkout # - name: Checkout
uses: actions/checkout@v3 # uses: actions/checkout@v3
- name: Cache pip installed linkchecker
uses: actions/cache@v3
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip
restore-keys: |
${{ runner.os }}-pip-
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.x'
# You can test your matrix by printing the current Python version
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: pip install git+https://github.com/linkchecker/linkchecker.git
- name: Remove cargo-config
run: rm -f .cargo/config
- name: Fail on warnings
run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs
- name: Build docs
run: cargo doc
- name: Check links
run: |
td=$(mktemp -d)
cp -r target/doc $td/api
linkchecker $td/api/rtic/
linkchecker $td/api/cortex_m_rtic_macros/
# Build the books
mdbook:
name: mdbook
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python 3.x
uses: actions/setup-python@v4
with:
# Semantic version range syntax or exact version of a Python version
python-version: '3.x'
# You can test your matrix by printing the current Python version
- name: Display Python version
run: python -c "import sys; print(sys.version)"
- name: Install dependencies
run: pip install git+https://github.com/linkchecker/linkchecker.git
- name: mdBook Action
uses: peaceiris/actions-mdbook@v1
with:
mdbook-version: 'latest'
- name: Build book in English
shell: 'script --return --quiet --command "bash {0}"'
run: cd book/en && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi
- name: Build book in Russian
shell: 'script --return --quiet --command "bash {0}"'
run: cd book/ru && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then echo "Russian book needs updating!"; else exit 0; fi
- name: Check links
run: |
td=$(mktemp -d)
mkdir $td/book
cp -r book/en/book $td/book/en
cp -r book/ru/book $td/book/ru
cp LICENSE-* $td/book/en
cp LICENSE-* $td/book/ru
linkchecker $td/book/en/
linkchecker $td/book/ru/
# Update stable branch
# #
# This needs to run before book is built # - name: Cache pip installed linkchecker
mergetostablebranch: # uses: actions/cache@v3
name: If CI passes, merge master branch into release/vX # with:
runs-on: ubuntu-22.04 # path: ~/.cache/pip
needs: # key: ${{ runner.os }}-pip
- style # restore-keys: |
- check # ${{ runner.os }}-pip-
- clippy #
- checkexamples # - name: Set up Python 3.x
- testexamples # uses: actions/setup-python@v4
- checkmacros # with:
- testmacros # # Semantic version range syntax or exact version of a Python version
- tests # python-version: '3.x'
- docs #
- mdbook # # You can test your matrix by printing the current Python version
# - name: Display Python version
# Only run this when pushing to master branch # run: python -c "import sys; print(sys.version)"
if: github.ref == 'refs/heads/master' #
steps: # - name: Install dependencies
- uses: actions/checkout@v3 # run: pip install git+https://github.com/linkchecker/linkchecker.git
#
- name: Get crate version and print output branch release/vX # - name: Remove cargo-config
id: crateversionbranch # run: rm -f .cargo/config
# Parse metadata for version number, extract the Semver Major #
run: | # - name: Fail on warnings
VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version') # run: sed -i 's,//deny_warnings_placeholder_for_ci,#![deny(warnings)],' src/lib.rs macros/src/lib.rs
VERSIONMAJOR=${VERSION%.*.*} #
echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV # - name: Build docs
echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV # run: cargo doc
echo "version=$VERSION" >> $GITHUB_ENV #
# - name: Check links
- uses: everlytic/branch-merge@1.1.5 # run: |
with: # td=$(mktemp -d)
github_token: ${{ github.token }} # cp -r target/doc $td/api
source_ref: 'master' # linkchecker $td/api/rtic/
target_branch: ${{ env.branch }} # linkchecker $td/api/cortex_m_rtic_macros/
commit_message_template: '[Bors] Merged {source_ref} into target {target_branch}' #
# # Build the books
# Only runs when pushing to master branch # mdbook:
# Bors run CI against staging branch, # name: mdbook
# if that succeeds Borst tries against master branch # runs-on: ubuntu-22.04
# If all tests pass, then deploy stage is run # steps:
deploy: # - name: Checkout
name: deploy # uses: actions/checkout@v3
runs-on: ubuntu-22.04 # - name: Set up Python 3.x
needs: # uses: actions/setup-python@v4
mergetostablebranch # with:
# # Semantic version range syntax or exact version of a Python version
# Only run this when pushing to master branch # python-version: '3.x'
if: github.ref == 'refs/heads/master' #
steps: # # You can test your matrix by printing the current Python version
- uses: actions/checkout@v3 # - name: Display Python version
# run: python -c "import sys; print(sys.version)"
- name: Set up Python 3.x #
uses: actions/setup-python@v4 # - name: Install dependencies
with: # run: pip install git+https://github.com/linkchecker/linkchecker.git
# Semantic version range syntax or exact version of a Python version #
python-version: '3.x' # - name: mdBook Action
# uses: peaceiris/actions-mdbook@v1
# You can test your matrix by printing the current Python version # with:
- name: Display Python version # mdbook-version: 'latest'
run: python -c "import sys; print(sys.version)" #
# - name: Build book in English
- name: mdBook Action # shell: 'script --return --quiet --command "bash {0}"'
uses: peaceiris/actions-mdbook@v1 # run: cd book/en && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi
with: #
mdbook-version: 'latest' # - name: Build book in Russian
# shell: 'script --return --quiet --command "bash {0}"'
- name: Get crate version # run: cd book/ru && if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then echo "Russian book needs updating!"; else exit 0; fi
id: crateversion #
# Parse metadata for version number, extract the Semver Major # - name: Check links
run: | # run: |
VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version') # td=$(mktemp -d)
VERSIONMAJOR=${VERSION%.*.*} # mkdir $td/book
echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV # cp -r book/en/book $td/book/en
echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV # cp -r book/ru/book $td/book/ru
echo "version=$VERSION" >> $GITHUB_ENV # cp LICENSE-* $td/book/en
# cp LICENSE-* $td/book/ru
- name: Remove cargo-config #
run: rm -f .cargo/config # linkchecker $td/book/en/
# linkchecker $td/book/ru/
- name: Build docs #
run: cargo doc # # Update stable branch
# #
- name: Build books # # This needs to run before book is built
shell: 'script --return --quiet --command "bash {0}"' # mergetostablebranch:
run: | # name: If CI passes, merge master branch into release/vX
langs=( en ru ) # runs-on: ubuntu-22.04
devver=( dev ) # needs:
# The latest stable must be the first element in the array # - style
vers=( "1" "0.5" "0.4" ) # - check
# - clippy
# All releases start with "v" # - checkexamples
# followed by MAJOR.MINOR.PATCH, see semver.org # - testexamples
# Store first in array as stable # - checkmacros
stable=${vers} # - testmacros
crateversion={{ env.versionmajor }} # - tests
# - docs
echo "Latest stable version: $stable" # - mdbook
echo "Current crate version: $crateversion" #
# # Only run this when pushing to master branch
# Create directories # if: github.ref == 'refs/heads/master'
td=$(mktemp -d) # steps:
mkdir -p $td/$devver/book/ # - uses: actions/checkout@v3
cp -r target/doc $td/$devver/api #
# - name: Get crate version and print output branch release/vX
# Redirect rtic.rs/meeting/index.html to hackmd # id: crateversionbranch
mkdir $td/meeting # # Parse metadata for version number, extract the Semver Major
sed "s|URL|https://hackmd.io/c_mFUZL-Q2C6614MlrrxOg|g" redirect.html > $td/meeting/index.html # run: |
sed -i "s|Page Redirection|RTIC Meeting|" $td/meeting/index.html # VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version')
sed -i "s|If you|Redirecting to RTIC HackMD. If you|" $td/meeting/index.html # VERSIONMAJOR=${VERSION%.*.*}
# echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV
# Redirect the main site to the stable release # echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV
sed "s|URL|$stable|g" redirect.html > $td/index.html # echo "version=$VERSION" >> $GITHUB_ENV
#
# Create the redirects for dev-version # - uses: everlytic/branch-merge@1.1.5
# If the current stable and the version being built differ, # with:
# then there is a dev-version and the links should point to it. # github_token: ${{ github.token }}
if [[ "$stable" != "$crateversion" ]]; # source_ref: 'master'
then # target_branch: ${{ env.branch }}
sed 's|URL|rtic/index.html|g' redirect.html > $td/$devver/api/index.html # commit_message_template: '[Bors] Merged {source_ref} into target {target_branch}'
sed 's|URL|book/en|g' redirect.html > $td/$devver/index.html #
else # # Only runs when pushing to master branch
# If the current stable and the "dev" version in master branch # # Bors run CI against staging branch,
# share the same major version, redirect dev/ to stable book # # if that succeeds Borst tries against master branch
sed 's|URL|rtic.rs/$stable/api/rtic|g' redirect.html > $td/$devver/api/index.html # # If all tests pass, then deploy stage is run
sed 's|URL|rtic.rs/$stable|g' redirect.html > $td/$devver/index.html # deploy:
fi # name: deploy
# runs-on: ubuntu-22.04
# Build books # needs:
for lang in ${langs[@]}; do # mergetostablebranch
( cd book/$lang && #
if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi # # Only run this when pushing to master branch
) # if: github.ref == 'refs/heads/master'
cp -r book/$lang/book $td/$devver/book/$lang # steps:
cp LICENSE-* $td/$devver/book/$lang/ # - uses: actions/checkout@v3
done #
# - name: Set up Python 3.x
# Build older versions, including stable # uses: actions/setup-python@v4
root=$(pwd) # with:
for ver in ${vers[@]}; do # # Semantic version range syntax or exact version of a Python version
prefix=${ver} # python-version: '3.x'
#
mkdir -p $td/$prefix/book # # You can test your matrix by printing the current Python version
src=$(mktemp -d) # - name: Display Python version
curl -L https://github.com/rtic-rs/cortex-m-rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src # run: python -c "import sys; print(sys.version)"
#
pushd $src # - name: mdBook Action
rm -f .cargo/config # uses: peaceiris/actions-mdbook@v1
cargo doc || cargo doc --features timer-queue # with:
cp -r target/doc $td/$prefix/api # mdbook-version: 'latest'
sed 's|URL|rtic/index.html|g' $root/redirect.html > $td/$prefix/api/index.html #
for lang in ${langs[@]}; do # - name: Get crate version
( cd book/$lang && # id: crateversion
if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi # # Parse metadata for version number, extract the Semver Major
) # run: |
cp -r book/$lang/book $td/$prefix/book/$lang # VERSION=$(cargo metadata --format-version 1 --no-deps --offline | jq -r '.packages[] | select(.name =="cortex-m-rtic") | .version')
cp LICENSE-* $td/$prefix/book/$lang/ # VERSIONMAJOR=${VERSION%.*.*}
done # echo "branch=release/v$VERSIONMAJOR" >> $GITHUB_ENV
sed 's|URL|book/en|g' $root/redirect.html > $td/$prefix/index.html # echo "versionmajor=$VERSIONMAJOR" >> $GITHUB_ENV
popd # echo "version=$VERSION" >> $GITHUB_ENV
#
rm -rf $src # - name: Remove cargo-config
done # run: rm -f .cargo/config
#
# Copy the stable book to the stable alias # - name: Build docs
cp -r $td/$stable $td/stable # run: cargo doc
#
# Forward CNAME file # - name: Build books
cp CNAME $td/ # shell: 'script --return --quiet --command "bash {0}"'
mv $td/ bookstodeploy # run: |
# langs=( en ru )
- name: Deploy to GH-pages # devver=( dev )
uses: peaceiris/actions-gh-pages@v3 # # The latest stable must be the first element in the array
with: # vers=( "1" "0.5" "0.4" )
github_token: ${{ secrets.GITHUB_TOKEN }} #
publish_dir: ./bookstodeploy # # All releases start with "v"
force_orphan: true # # followed by MAJOR.MINOR.PATCH, see semver.org
# # Store first in array as stable
# stable=${vers}
# crateversion={{ env.versionmajor }}
#
# echo "Latest stable version: $stable"
# echo "Current crate version: $crateversion"
#
# # Create directories
# td=$(mktemp -d)
# mkdir -p $td/$devver/book/
# cp -r target/doc $td/$devver/api
#
# # Redirect rtic.rs/meeting/index.html to hackmd
# mkdir $td/meeting
# sed "s|URL|https://hackmd.io/c_mFUZL-Q2C6614MlrrxOg|g" redirect.html > $td/meeting/index.html
# sed -i "s|Page Redirection|RTIC Meeting|" $td/meeting/index.html
# sed -i "s|If you|Redirecting to RTIC HackMD. If you|" $td/meeting/index.html
#
# # Redirect the main site to the stable release
# sed "s|URL|$stable|g" redirect.html > $td/index.html
#
# # Create the redirects for dev-version
# # If the current stable and the version being built differ,
# # then there is a dev-version and the links should point to it.
# if [[ "$stable" != "$crateversion" ]];
# then
# sed 's|URL|rtic/index.html|g' redirect.html > $td/$devver/api/index.html
# sed 's|URL|book/en|g' redirect.html > $td/$devver/index.html
# else
# # If the current stable and the "dev" version in master branch
# # share the same major version, redirect dev/ to stable book
# sed 's|URL|rtic.rs/$stable/api/rtic|g' redirect.html > $td/$devver/api/index.html
# sed 's|URL|rtic.rs/$stable|g' redirect.html > $td/$devver/index.html
# fi
#
# # Build books
# for lang in ${langs[@]}; do
# ( cd book/$lang &&
# if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi
# )
# cp -r book/$lang/book $td/$devver/book/$lang
# cp LICENSE-* $td/$devver/book/$lang/
# done
#
# # Build older versions, including stable
# root=$(pwd)
# for ver in ${vers[@]}; do
# prefix=${ver}
#
# mkdir -p $td/$prefix/book
# src=$(mktemp -d)
# curl -L https://github.com/rtic-rs/cortex-m-rtic/archive/release/v${ver}.tar.gz | tar xz --strip-components 1 -C $src
#
# pushd $src
# rm -f .cargo/config
# cargo doc || cargo doc --features timer-queue
# cp -r target/doc $td/$prefix/api
# sed 's|URL|rtic/index.html|g' $root/redirect.html > $td/$prefix/api/index.html
# for lang in ${langs[@]}; do
# ( cd book/$lang &&
# if mdbook build |& tee /dev/tty | grep "\[ERROR\]"; then exit 1; else exit 0; fi
# )
# cp -r book/$lang/book $td/$prefix/book/$lang
# cp LICENSE-* $td/$prefix/book/$lang/
# done
# sed 's|URL|book/en|g' $root/redirect.html > $td/$prefix/index.html
# popd
#
# rm -rf $src
# done
#
# # Copy the stable book to the stable alias
# cp -r $td/$stable $td/stable
#
# # Forward CNAME file
# cp CNAME $td/
# mv $td/ bookstodeploy
#
# - name: Deploy to GH-pages
# uses: peaceiris/actions-gh-pages@v3
# with:
# github_token: ${{ secrets.GITHUB_TOKEN }}
# publish_dir: ./bookstodeploy
# force_orphan: true
# Refs: https://github.com/rust-lang/crater/blob/9ab6f9697c901c4a44025cf0a39b73ad5b37d198/.github/workflows/bors.yml#L125-L149 # Refs: https://github.com/rust-lang/crater/blob/9ab6f9697c901c4a44025cf0a39b73ad5b37d198/.github/workflows/bors.yml#L125-L149
# #
@ -511,8 +511,8 @@ jobs:
- checkmacros - checkmacros
- testmacros - testmacros
- tests - tests
- docs # - docs
- mdbook # - mdbook
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- name: Mark the job as a success - name: Mark the job as a success

View file

@ -18,9 +18,7 @@ fn main() {
} else if target.starts_with("thumb") } else if target.starts_with("thumb")
&& !(target.starts_with("thumbv6m") | target.starts_with("thumbv8m.base")) && !(target.starts_with("thumbv6m") | target.starts_with("thumbv8m.base"))
{ {
panic!( panic!("Unknown target '{target}'. Need to update BASEPRI logic in build.rs.");
"Unknown target '{target}'. Need to update BASEPRI logic in build.rs."
);
} }
println!("cargo:rerun-if-changed=build.rs"); println!("cargo:rerun-if-changed=build.rs");

View file

@ -84,9 +84,7 @@ pub fn codegen(app: &App, analysis: &Analysis) -> TokenStream2 {
} }
if level > 0 { if level > 0 {
let doc = format!( let doc = format!("Interrupt handler to dispatch async tasks at priority {level}");
"Interrupt handler to dispatch async tasks at priority {level}"
);
let attribute = &interrupts.get(&level).expect("UNREACHABLE").1.attrs; let attribute = &interrupts.get(&level).expect("UNREACHABLE").1.attrs;
items.push(quote!( items.push(quote!(
#[allow(non_snake_case)] #[allow(non_snake_case)]

View file

@ -39,9 +39,7 @@ impl HardwareTask {
Err(parse::Error::new( Err(parse::Error::new(
span, span,
format!( format!("this task handler must have type signature `fn({name}::Context)`"),
"this task handler must have type signature `fn({name}::Context)`"
),
)) ))
} }
} }
@ -82,9 +80,7 @@ impl HardwareTask {
Err(parse::Error::new( Err(parse::Error::new(
span, span,
format!( format!("this task handler must have type signature `fn({name}::Context)`"),
"this task handler must have type signature `fn({name}::Context)`"
),
)) ))
} }
} }

View file

@ -34,9 +34,7 @@ impl Idle {
Err(parse::Error::new( Err(parse::Error::new(
item.sig.ident.span(), item.sig.ident.span(),
format!( format!("this `#[idle]` function must have signature `fn({name}::Context) -> !`"),
"this `#[idle]` function must have signature `fn({name}::Context) -> !`"
),
)) ))
} }
} }

View file

@ -33,9 +33,7 @@ impl SoftwareTask {
Err(parse::Error::new( Err(parse::Error::new(
span, span,
format!( format!("this task handler must have type signature `async fn({name}::Context)`"),
"this task handler must have type signature `async fn({name}::Context)`"
),
)) ))
} }
} }
@ -70,9 +68,7 @@ impl SoftwareTask {
Err(parse::Error::new( Err(parse::Error::new(
span, span,
format!( format!("this task handler must have type signature `async fn({name}::Context)`"),
"this task handler must have type signature `async fn({name}::Context)`"
),
)) ))
} }
} }

View file

@ -9,8 +9,8 @@ mod app {
struct Local {} struct Local {}
#[init] #[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { fn init(cx: init::Context) -> (Shared, Local) {
(Shared {}, Local {}, init::Monotonics()) (Shared {}, Local {})
} }
#[task(binds = NonMaskableInt)] #[task(binds = NonMaskableInt)]

View file

@ -9,10 +9,10 @@ mod app {
struct Local {} struct Local {}
#[init] #[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { fn init(cx: init::Context) -> (Shared, Local) {
(Shared {}, Local {}, init::Monotonics()) (Shared {}, Local {})
} }
#[task] #[task]
fn a(_: a::Context) {} async fn a(_: a::Context) {}
} }

View file

@ -1,5 +1,5 @@
error: not enough interrupts to dispatch all software tasks (need: 1; given: 0) error: not enough interrupts to dispatch all software tasks (need: 1; given: 0)
--> ui/extern-interrupt-not-enough.rs:17:8 --> ui/extern-interrupt-not-enough.rs:17:14
| |
17 | fn a(_: a::Context) {} 17 | async fn a(_: a::Context) {}
| ^ | ^

View file

@ -9,8 +9,8 @@ mod app {
struct Local {} struct Local {}
#[init] #[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { fn init(cx: init::Context) -> (Shared, Local) {
(Shared {}, Local {}, init::Monotonics()) (Shared {}, Local {})
} }
#[task(binds = UART0)] #[task(binds = UART0)]

View file

@ -9,8 +9,8 @@ mod app {
struct Local {} struct Local {}
#[init] #[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { fn init(cx: init::Context) -> (Shared, Local) {
(Shared {}, Local {}, init::Monotonics()) (Shared {}, Local {})
} }
#[task(binds = GPIOA, priority = 1)] #[task(binds = GPIOA, priority = 1)]

View file

@ -1,7 +1,7 @@
warning: unused variable: `cx` warning: unused variable: `cx`
--> ui/task-priority-too-high.rs:12:13 --> ui/task-priority-too-high.rs:12:13
| |
12 | fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { 12 | fn init(cx: init::Context) -> (Shared, Local) {
| ^^ help: if this is intentional, prefix it with an underscore: `_cx` | ^^ help: if this is intentional, prefix it with an underscore: `_cx`
| |
= note: `#[warn(unused_variables)]` on by default = note: `#[warn(unused_variables)]` on by default

View file

@ -9,7 +9,7 @@ mod app {
struct Local {} struct Local {}
#[init] #[init]
fn init(cx: init::Context) -> (Shared, Local, init::Monotonics) { fn init(cx: init::Context) -> (Shared, Local) {
(Shared {}, Local {}, init::Monotonics()) (Shared {}, Local {})
} }
} }