diff options
| -rw-r--r-- | .github/workflows/ci.yml | 10 | ||||
| -rw-r--r-- | .github/workflows/release.yml | 10 | ||||
| -rw-r--r-- | source/slang/slang-check-decl.cpp | 6 | ||||
| -rw-r--r-- | source/slang/slang-check-inheritance.cpp | 3 |
4 files changed, 22 insertions, 7 deletions
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index a8526dcaf..46db88275 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -32,7 +32,7 @@ jobs: - { os: macos, compiler: gcc } - { os: macos, compiler: cl } include: - - { os: linux, runs-on: ubuntu-20.04 } + - { os: linux, runs-on: ubuntu-latest } - { os: macos, runs-on: macos-latest } - { os: windows, runs-on: windows-latest } # Warnings are treated as errors by default. @@ -58,7 +58,7 @@ jobs: platform: aarch64 test-category: smoke full-gpu-tests: false - runs-on: ubuntu-22.04-arm + runs-on: ubuntu-24.04-arm has-gpu: false build-llvm: false # Self-hosted full gpu build @@ -105,6 +105,12 @@ jobs: echo "Only documentation files changed, skipping remaining steps" echo "should-run=false" >> $GITHUB_OUTPUT fi + - name: Install dependencies + run: | + if [[ "${{ matrix.os }}" = "linux" ]]; then + sudo apt-get update + sudo apt-get install -y libx11-dev + fi - name: Setup if: steps.filter.outputs.should-run == 'true' uses: ./.github/actions/common-setup diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index da5577c7c..617dd574c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -27,13 +27,13 @@ jobs: - { os: linux, platform: x86_64, - runs-on: ubuntu-22.04, + runs-on: ubuntu-latest, compiler: gcc, } - { os: linux, platform: aarch64, - runs-on: ubuntu-22.04-arm, + runs-on: ubuntu-24.04-arm, compiler: gcc, } - { os: windows, runs-on: windows-latest, compiler: cl } @@ -56,6 +56,12 @@ jobs: with: submodules: "recursive" fetch-depth: "0" + - name: Install dependencies + run: | + if [[ "${{ matrix.os }}" = "linux" ]]; then + sudo apt-get update + sudo apt-get install -y libx11-dev + fi - name: Setup uses: ./.github/actions/common-setup with: diff --git a/source/slang/slang-check-decl.cpp b/source/slang/slang-check-decl.cpp index da2300d8a..899b04b8b 100644 --- a/source/slang/slang-check-decl.cpp +++ b/source/slang/slang-check-decl.cpp @@ -7069,7 +7069,8 @@ bool SemanticsVisitor::checkInterfaceConformance( // the time we are compiling and handle those, and punt on the larger issue // for a bit longer. // - for (auto candidateExt : getCandidateExtensions(superInterfaceDeclRef, this)) + auto candidateExtensions = getCandidateExtensions(superInterfaceDeclRef, this); + for (const auto& candidateExt : candidateExtensions) { // We need to apply the extension to the interface type that our // concrete type is inheriting from. @@ -11272,7 +11273,8 @@ void _foreachDirectOrExtensionMemberOfType( if (auto aggTypeDeclRef = containerDeclRef.as<AggTypeDecl>()) { auto aggType = DeclRefType::create(semantics->getASTBuilder(), aggTypeDeclRef); - for (auto extDecl : getCandidateExtensions(aggTypeDeclRef, semantics)) + auto candidateExtensions = getCandidateExtensions(aggTypeDeclRef, semantics); + for (auto extDecl : candidateExtensions) { // Note that `extDecl` may have been declared for a type // base on the declaration that `aggTypeDeclRef` refers diff --git a/source/slang/slang-check-inheritance.cpp b/source/slang/slang-check-inheritance.cpp index cef9b6a09..37b4d3158 100644 --- a/source/slang/slang-check-inheritance.cpp +++ b/source/slang/slang-check-inheritance.cpp @@ -304,7 +304,8 @@ InheritanceInfo SharedSemanticsContext::_calcInheritanceInfo( Dictionary<Type*, SubtypeWitness*>* additionalSubtypeWitness) { bool result = false; - for (auto extDecl : getCandidateExtensions(extensionTargetDeclRef, &visitor)) + auto candidateExtensions = getCandidateExtensions(extensionTargetDeclRef, &visitor); + for (auto extDecl : candidateExtensions) { // The list of *candidate* extensions is computed and // cached based on the identity of the declaration alone, |
