-
Notifications
You must be signed in to change notification settings - Fork 54
Core Expression metadata #1066
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Draft
MikaelMayer
wants to merge
184
commits into
main2
Choose a base branch
from
issue-1065-extract-core-expression-metadata-from-pr
base: main2
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
Core Expression metadata #1066
Changes from 43 commits
Commits
Show all changes
184 commits
Select commit
Hold shift + click to select a range
d562e6f
feat(core): Change Core.ExpressionMetadata from Unit to SourceRange (…
MikaelMayer 75554c5
fix: Replace fragile repr string matching with AST pattern matching i…
MikaelMayer df191e1
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 2214b98
fix: Use DDM formatter for axiom extraction guard_msgs test
MikaelMayer cdc5568
fix: Propagate source range metadata instead of using SourceRange.none
MikaelMayer a5bae51
style: Remove stray blank line in match block
MikaelMayer faa5bfc
refactor: Address PR review nits — remove extra blank lines, extract …
MikaelMayer 35b7bdd
fix: Make SourceRange equality trivial to prevent metadata-sensitive …
MikaelMayer 1d366a5
merge: Resolve conflict with main after Laurel metadata removal
MikaelMayer 679c9cd
fix: Document or propagate SourceRange for all SourceRange.none occur…
MikaelMayer 262de85
style: Add group comment for semantic typeclass instances using Sourc…
MikaelMayer 877e5fc
fix: Update pyInterpret golden-file expectations for SourceRange meta…
MikaelMayer 199002a
feat: Add CI check for unsuppressed SourceRange.none usage
MikaelMayer 315d1d7
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer c2c2b02
style: Rename suppression markers to nosourcerange: with required exp…
MikaelMayer 229e024
fix: Use SourceRange.isNone instead of == default for source location…
MikaelMayer 23b0657
fix: Restore test_unsupported_config.expected golden file
MikaelMayer e1285c0
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 5587774
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 1c5cfab
ci: Retrigger CI after transient label-conflicts bot failure
MikaelMayer 21acdf1
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer d5d5e0d
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer cdda793
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer dbd7340
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer d7f9c91
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 1521c69
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer ce09d71
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer fad8a91
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 43a46d0
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 780972f
Fix SMTEncoderTests: use Strata.SourceRange.none instead of () for me…
MikaelMayer 31618de
Add Uri to ExpressionMetadata via ExprSourceLoc struct
MikaelMayer 933dea8
Address review: unify URI helpers, fix missing URI propagation
MikaelMayer db0bdf6
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 640527d
Fix guard_msgs: update SourceRange.eq_trivial to ExprSourceLoc.eq_tri…
MikaelMayer 5778a48
Preserve source location in Traceable.combine during expression evalu…
MikaelMayer 1cf5e73
Store all source locations in ExprSourceLoc.relatedLocs during combine
MikaelMayer 026c021
Fix dedup check in combine and ToExpr for ExprSourceLoc.relatedLocs
MikaelMayer 9a87891
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 91b2659
Extend check script to detect ExprSourceLoc.none and guard against re…
MikaelMayer dc8e381
Add wget retry flags to CI to handle transient GitHub 500 errors
MikaelMayer e63aa2b
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer b1dd19d
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer fdeb26e
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer ca1f082
Remove unsound axiom SourceRange.eq_trivial, use BEq + sound DecidableEq
MikaelMayer 100d56c
Remove unsound axioms, use standard BEq/DecidableEq for metadata
MikaelMayer a9abb8e
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 15b6e55
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 83da0e1
Add wget retry flags to ion-java download for CI resilience
MikaelMayer 42d0d3d
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 01598df
Fix CI: save lake cache before tests to prevent cascading cache-miss …
MikaelMayer b4c8ac1
Retry CI: trigger fresh cache generation after transient cache-miss f…
MikaelMayer afa4139
Replace ExprSourceLoc.none with provenance-carrying alternatives in t…
MikaelMayer 3dab19c
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer dcf8c3d
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 1c15802
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 96633bb
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer 2fcf38d
Propagate Python AST source positions to Core expressions via pyLoc h…
MikaelMayer b6e6b7d
Add nosourcerange suppression markers for legitimate ExprSourceLoc.no…
MikaelMayer 787ac54
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 8e9f72d
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer 3eec371
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 53b81c5
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer f3e9d26
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 63b20c4
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer 37255e2
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer b1e472a
Remove ExprSourceLoc.none: require explicit provenance for all synthe…
MikaelMayer 4ddfe14
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer a0f2855
Retry CI: trigger fresh run after transient cache-miss failure
MikaelMayer cb1b1bf
Add nosourcerange suppression comments to fix lint check
MikaelMayer 72d03c8
Make lint script comment stateless (remove historical reference)
MikaelMayer 6a8ded0
feat: introduce Provenance type to track AST node origins (#1139)
MikaelMayer 0d39d74
refactor: deduplicate metadata creation with shared MetaData.ofSource…
MikaelMayer beb77de
Merge remote-tracking branch 'origin/main' into issue-1139-sourcerang…
MikaelMayer 9a60e78
feat: complete Provenance migration — SMT translator, metadata, and F…
MikaelMayer 5e72a7e
refactor: deduplicate getFileRange via getProvenance, migrate remaini…
MikaelMayer 8197406
fix: erase existing provenance before setting call site file range
MikaelMayer 702c393
refactor: remove MetaDataElem.Value.fileRange variant, use .provenanc…
MikaelMayer 9f8c8e2
fix: handle missing file range in getNameFromMd without dbg_trace
MikaelMayer 67e77c1
fix: restore assert label format for synthesized provenance in getNam…
MikaelMayer c2f9fe1
refactor: address PR review - remove dead code, fix naming consistenc…
MikaelMayer 0571c6a
merge: resolve conflict with issue-1065-extract-core-expression-metad…
MikaelMayer a6d5001
refactor: address PR review - restore doc comment, refactor synthesiz…
MikaelMayer 7c438f6
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 192a43a
refactor: add canonical provenance constants, rename ann to smtProv
MikaelMayer 2755d9d
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer d292bfc
ci: retrigger CI after transient cache miss
MikaelMayer 336314e
refactor: replace synthesized origin strings with SynthesizedOrigin i…
MikaelMayer d59267e
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 297d61a
Merge remote-tracking branch 'origin/main' into issue-1139-sourcerang…
MikaelMayer 9801a67
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 0e8a827
fix: use ExprSourceLoc metadata in TerminationCheck instead of Unit
MikaelMayer c084fbf
refactor: address PR review - restore doc comment, refactor synthesiz…
MikaelMayer 7e0c150
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 034053a
Merge remote-tracking branch 'origin/main' into issue-1139-sourcerang…
MikaelMayer b1c4e47
Merge branch 'main' into issue-1065-extract-core-expression-metadata-…
MikaelMayer 5c28c0c
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer a71ad55
CI: add comment explaining cache save ordering
MikaelMayer fe66bcd
CI: remove if: always() from cache save (now before tests, broken cac…
MikaelMayer 4f128e4
CI: add explicit permissions to build_and_test_lean job
MikaelMayer 0fcdc25
Add PR template warning about repository split (#1166)
atomb 127b40b
Merge remote-tracking branch 'origin/main' into issue-1139-sourcerang…
MikaelMayer f43acb8
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 99b84e5
lake: build Strata lib as a test-driver dependency (#1138)
tautschnig c9210e8
Merge remote-tracking branch 'origin/main' into issue-1139-sourcerang…
MikaelMayer f42d2dd
Merge remote-tracking branch 'origin/issue-1139-sourcerange-none-and-…
MikaelMayer 8acaa4b
The small-step semantics of Imperative must have scoped var init, rem…
aqjune-aws a5d36ed
Support SMT string literals and common string ops in translateTerm (#…
tautschnig e669711
CI: grant actions:write to build_and_test_lean for cache save
MikaelMayer 50b0e12
feat: introduce Provenance type and migrate metadata from FileRange (…
MikaelMayer f7b1a82
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 97cfec2
ci: retrigger CI after transient cache miss
MikaelMayer 1d47569
Fix bug: ADT constructors do not change `Map` to `Array` when using u…
thanhnguyen-aws 75e806e
Core.formatProgram to produce round-trip-parseable output for all con…
MikaelMayer a66e9c9
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer 192b780
Abstract Solver Interface: Decouple Term Construction from SMT-LIB En…
MikaelMayer 6835d65
Fix #1146: require command_datatypes to be non-empty (#1155)
tautschnig 64e4c1f
ci: retrigger CI after transient cache miss
MikaelMayer e446a5b
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer d7a390d
ci: retrigger CI after transient cache miss
MikaelMayer f6d195a
Split StrataMain.lean into importable library and thin executable roo…
MikaelMayer 09c2e63
Merge remote-tracking branch 'origin/main' into issue-1065-extract-co…
MikaelMayer a424e47
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer adefdac
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer c1061d0
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 8defae4
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer cbcde3e
Remove checkNoSourceRangeNone CI check (SourceRange.none removed upst…
MikaelMayer 2115df1
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer fff5f46
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer f44dc8b
ci: retrigger CI after transient cache miss
MikaelMayer 7fdff6e
ci: retrigger CI (transient GitHub Actions cache miss)
MikaelMayer eb0ad07
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 582d137
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer d1e1a03
fix: use ExprSourceLoc metadata instead of Unit in BvIntCast tests
MikaelMayer e6d62dc
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 21c318a
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 0aedb78
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer ba85b4c
ci: retrigger CI after transient cache miss
MikaelMayer fc3fd87
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 49489b1
ci: retrigger CI after transient cache miss
MikaelMayer bbe51b2
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 689d599
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 9915741
ci: trigger fresh build to populate cache
MikaelMayer acda75e
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 8475296
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 7f576df
ci: retrigger CI after transient cache miss
MikaelMayer b90b5f7
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer bc4554f
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 6bd7f2a
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 22f6bec
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 8973fb7
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 08b6860
ci: retry after transient cache miss
MikaelMayer e40452a
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer e76e15f
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 311245b
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer f6eff13
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 167c804
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 87bc192
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 13df12a
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 2941946
fix: Resolve merge issues in test files
MikaelMayer d40ee6b
fix: Update guard_msgs obligation names after merge
MikaelMayer 85f3860
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 5e69416
fix: Use ExprSourceLoc default metadata in test expressions
MikaelMayer d4fab58
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 50509bc
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 0e59420
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 55a9ad0
ci: retry CI (cache infrastructure issue on prior run)
MikaelMayer d55c7a2
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer a933c77
ci: retry CI (cache infrastructure issue on prior run)
MikaelMayer 6ae877a
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer ccde429
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer ad3c2d4
ci: retry CI (cache infrastructure issue on prior run)
MikaelMayer 3bd4d1d
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 0346475
ci: retry CI (cache infrastructure issue on prior run)
MikaelMayer 2eb4439
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 0e43d3d
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer e0bd91c
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 6651d28
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 8772ebb
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 17be681
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 85b353e
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 5238bb7
Merge origin/main2: resolve conflicts in PureExpr and StatementSemantics
MikaelMayer 2ac083c
Fix #guard_msgs: add Core.instHasIntExpression axiom to expected output
MikaelMayer 2a1a013
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer 05cf582
Merge remote-tracking branch 'origin/main2' into issue-1065-extract-c…
MikaelMayer File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,96 @@ | ||
| #!/bin/bash | ||
| # Check that new code does not introduce net-new SourceRange.none or ExprSourceLoc.none | ||
| # without justification. | ||
| # | ||
| # Suppression: | ||
| # Per-line: add "-- nosourcerange: <explanation>" on the same line | ||
| # Per-file: add "-- nosourcerange-file: <explanation>" anywhere in the file | ||
| # | ||
| # The explanation must be non-empty and must not consist solely of "ok". | ||
|
|
||
| set -euo pipefail | ||
|
|
||
| BASE_REF="${1:-origin/main}" | ||
|
|
||
| # Patterns to check. If any of these are renamed, the safety check below will | ||
| # detect that the pattern no longer appears anywhere in the codebase and fail, | ||
| # forcing the developer to update this list. | ||
| NONE_PATTERNS=("SourceRange.none" "ExprSourceLoc.none") | ||
|
|
||
| # Safety check: every pattern must appear at least once in the tracked Lean | ||
| # files. If a pattern disappears entirely (e.g. due to a rename), this script | ||
| # must be updated to track the new name. | ||
| for pat in "${NONE_PATTERNS[@]}"; do | ||
| if ! git ls-files '*.lean' | xargs grep -qF "$pat" 2>/dev/null; then | ||
| echo "ERROR: Pattern '$pat' not found in any tracked .lean file." | ||
| echo "It may have been renamed. Update NONE_PATTERNS in this script." | ||
| exit 1 | ||
| fi | ||
| done | ||
|
|
||
| MERGE_BASE=$(git merge-base HEAD "$BASE_REF" 2>/dev/null || echo "$BASE_REF") | ||
|
|
||
| # Build a grep -F pattern file from the array | ||
| GREP_PATTERNS=$(printf '%s\n' "${NONE_PATTERNS[@]}") | ||
|
|
||
| # Get all new lines matching any none-pattern (unsuppressed per-line) | ||
| HITS=$(git diff "$MERGE_BASE"...HEAD --unified=0 --diff-filter=ACMR -- '*.lean' \ | ||
| | awk ' | ||
| /^--- / { next } | ||
| /^\+\+\+ / { file = substr($0, 7); next } | ||
| /^@@/ { split($3, a, /[,+]/); lineno = a[2]; next } | ||
| /^\+/ { print file ":" lineno ":" substr($0, 2); lineno++ } | ||
| ' \ | ||
| | { \ | ||
| grep -F -f <(echo "$GREP_PATTERNS") | \ | ||
| grep -v -P -- '-- nosourcerange(-file)?:\s*(?!ok\s*$)\S'; grep_status=$?; \ | ||
| if [ "$grep_status" -gt 1 ]; then exit "$grep_status"; else exit 0; fi; }) | ||
|
|
||
| if [ -z "$HITS" ]; then | ||
| echo "OK: No new SourceRange.none / ExprSourceLoc.none usage found." | ||
| exit 0 | ||
| fi | ||
|
|
||
| # Filter out files that contain a file-level suppression marker (check actual file content) | ||
| FILTERED="" | ||
| while IFS= read -r line; do | ||
| file="${line%%:*}" | ||
| if ! grep -qP -- '-- nosourcerange-file:\s*(?!ok\s*$)\S' "$file" 2>/dev/null; then | ||
| FILTERED="${FILTERED}${line} | ||
| " | ||
| fi | ||
| done <<< "$HITS" | ||
|
|
||
| # Remove trailing newline | ||
| FILTERED=$(echo "$FILTERED" | sed '/^$/d') | ||
|
|
||
| if [ -z "$FILTERED" ]; then | ||
| echo "OK: All occurrences are suppressed." | ||
| exit 0 | ||
| fi | ||
|
|
||
| ADDED=$(echo "$FILTERED" | wc -l | tr -d ' ') | ||
|
|
||
| # Count removed lines matching any none-pattern from the same diff | ||
| REMOVED=$(git diff "$MERGE_BASE"...HEAD --unified=0 --diff-filter=ACMR -- '*.lean' \ | ||
| | grep -E '^-[^-]' \ | ||
| | grep -cF -f <(echo "$GREP_PATTERNS") || true) | ||
|
|
||
| NET=$((ADDED - REMOVED)) | ||
|
|
||
| if [ "$NET" -gt 0 ]; then | ||
| echo "ERROR: Net increase of $NET unsuppressed SourceRange.none / ExprSourceLoc.none occurrence(s)." | ||
| echo " (added: $ADDED, removed: $REMOVED)" | ||
| echo "" | ||
| echo "Each occurrence should either propagate real source metadata or" | ||
| echo "be suppressed with one of:" | ||
| echo " -- nosourcerange: <explanation> (on the same line)" | ||
| echo " -- nosourcerange-file: <explanation> (anywhere in the file, covers all occurrences)" | ||
| echo "" | ||
| echo "The explanation must be non-empty and must not consist solely of \"ok\"." | ||
| echo "" | ||
| echo "$FILTERED" | ||
| exit 1 | ||
| fi | ||
|
|
||
| echo "OK: No net increase in unsuppressed usage (added: $ADDED, removed: $REMOVED)." |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.