Skip to content
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

Sync with master #41217

Merged
merged 280 commits into from
Aug 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
74cdfa8
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Nov 28, 2022
1aeda14
Simplify wait action negative tests
SasinduDilshara Nov 28, 2022
596afa5
Merge branch 'issue-#34821' of https://github.com/SasinduDilshara/bal…
SasinduDilshara Nov 28, 2022
b887fe6
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Jan 11, 2023
8aba26f
Remove xml as lax
ushirask Feb 14, 2023
df22d57
Remove map<xml> as lax
ushirask Feb 14, 2023
799d5a1
Remove map<xml> as lax
ushirask Feb 14, 2023
b71b7a3
Remove map<xml> lax tests
ushirask Feb 14, 2023
6f20f18
Fix test case
ushirask Feb 16, 2023
7a2f1e0
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Mar 14, 2023
b355827
Handle partial var inits within onfail
pcnfernando Jan 31, 2023
9827f66
Improve uninit var analysis for onfail
pcnfernando Mar 14, 2023
d205df8
Add unint var tetsts for onfail
pcnfernando Mar 14, 2023
57b65f9
Improve readability
pcnfernando Mar 14, 2023
50b7eeb
Mark possible failure iff enclosed within onfail
pcnfernando Mar 14, 2023
d4a77b9
Fix checkstyle failure
pcnfernando Mar 15, 2023
66f523f
Add comments for compiler errors in tests
pcnfernando Mar 15, 2023
79450aa
Fix unwanted comma in DiagnosticErrorCode
SasinduDilshara Mar 15, 2023
6d544ec
Fix incorrect override of merged un-inits
pcnfernando Mar 15, 2023
2a356c5
Improve while dataflow analysis
pcnfernando Mar 16, 2023
49d7ce0
Add destructuring tests
pcnfernando Mar 16, 2023
9ee1072
Add possible un-init after if
pcnfernando Mar 17, 2023
83b5bfc
Fix test failure
pcnfernando Mar 17, 2023
572ae98
Refactor function name
ushirask Mar 22, 2023
82d19e9
Merge branch 'master' into issue_39341
ushirask Mar 22, 2023
3d96ba4
Fix member access with same valid union
ushirask Mar 29, 2023
0a3c07e
Fix logic in TypeChecker and refactor code
ushirask Mar 29, 2023
5072d49
Refactor code
ushirask Mar 29, 2023
0bce8dc
Merge branch 'master' of https://github.com/ballerina-platform/baller…
pcnfernando Mar 29, 2023
922beb9
Fix test cases
ushirask Mar 31, 2023
7321edb
Merge branch 'master' of https://github.com/ballerina-platform/baller…
prakanth97 Apr 26, 2023
5cfd09b
Refactor variable
prakanth97 Apr 26, 2023
5670ff0
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara May 15, 2023
ad18c25
Merge branch 'issue-#34821' of https://github.com/SasinduDilshara/bal…
SasinduDilshara May 15, 2023
017d4ba
Update diagnstic error code with missing separator
SasinduDilshara May 16, 2023
3309239
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara May 23, 2023
b91f512
Remove invalid compiler error properties of client
SasinduDilshara May 23, 2023
a6538fc
Fix no warning in deprecated field-name
dulajdilshan May 31, 2023
5ca75c7
Add tests
dulajdilshan May 31, 2023
9d1530c
Fix naming grammar
dulajdilshan Jun 6, 2023
c1aae3e
Add more tests
dulajdilshan Jun 6, 2023
cb54615
Revert "Remove unnecessary changes"
Nadeeshan96 Jun 7, 2023
9a534e0
Merge branch 'ballerina-platform:master' into issue_39341
ushirask Jun 8, 2023
0a326b8
Merge branch 'ballerina-platform:master' into issue_39959
ushirask Jun 8, 2023
4fe76dc
Add new large array BIR instruction
Nadeeshan96 Jun 8, 2023
27e966e
Handle global vars and arguments
Nadeeshan96 Jun 12, 2023
b88cc58
Move global var and arg array element population
Nadeeshan96 Jun 12, 2023
e3dd4a1
Create new BBs when handling call terminators
Nadeeshan96 Jun 13, 2023
dfd43e5
Remove unnecessary temp variable creation
Nadeeshan96 Jun 13, 2023
1b70428
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Jun 13, 2023
22005b0
Fix adding unnecessary type narrowed info
lasinicl Jan 24, 2023
a3f887f
Add tests
lasinicl Jan 24, 2023
1de0d9e
Sync with master
prakanth97 Jun 19, 2023
0c7dfa9
Split large array BIR functions
Nadeeshan96 Jun 19, 2023
f6f4167
Fix style check failure
prakanth97 Jun 19, 2023
c104d9b
Introduce SplitFuncEnv and ParentFuncEnv
Nadeeshan96 Jun 19, 2023
67afa30
Refactor long methods
Nadeeshan96 Jun 19, 2023
f6c3695
Update closure variable logic
chiranSachintha Jun 19, 2023
c7764ca
Add unit tests
chiranSachintha Jun 20, 2023
fdb8969
Fix changed basic blocks
Nadeeshan96 Jun 20, 2023
4cef482
Separate send and return types of send action
prakanth97 Jun 20, 2023
00909f2
Add tests for async send action
prakanth97 Jun 20, 2023
4b62ae5
Handle check expressions in split functions
Nadeeshan96 Jun 21, 2023
b1b76aa
Merge branch 'ballerina-platform:master' into pr_39358
ushirask Jun 22, 2023
42b1c2c
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Jun 28, 2023
9585a24
Improve tests
dulajdilshan Jul 4, 2023
c04ac71
Fix typing with optional fields and open records
MaryamZi Jul 6, 2023
d2fd29d
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Jul 6, 2023
be5c24b
Remove unnecessary query related error codes
SasinduDilshara Jul 7, 2023
8e11173
Add tests for multiple wait actions,grouped exprs
SasinduDilshara Jul 7, 2023
4d86338
Add tests
MaryamZi Jul 10, 2023
011d3f9
Fix bug with BB terminator split's thenBB
Nadeeshan96 Jul 10, 2023
879fd79
Merge branch 'master' of https://github.com/ballerina-platform/baller…
pcnfernando Jul 10, 2023
893363c
Update checkBinaryBitwiseOperations method
SasinduDilshara Jul 10, 2023
19bd19e
Edit BIREmitter NewArray ins
Nadeeshan96 Jul 10, 2023
c3874dd
Merge branch 'master' of https://github.com/ballerina-platform/baller…
pcnfernando Jul 10, 2023
b5ac757
Fix split points of a BIRFunction by adding pass
Nadeeshan96 Jul 11, 2023
15fcd21
Omit checking NewArray instruction as split point
Nadeeshan96 Jul 11, 2023
21b2ef0
Handle instructions multiple array value operands
Nadeeshan96 Jul 11, 2023
fc63337
Fix BB terminators to BBs outside split functions
Nadeeshan96 Jul 12, 2023
3fca4a0
Rename the isBinaryBitwiseOperatorExpr method
SasinduDilshara Jul 12, 2023
9c3a1b8
Fix choosing split points
Nadeeshan96 Jul 12, 2023
54faf22
Fix bug with newly created BB terminators
Nadeeshan96 Jul 13, 2023
3543246
Do not choose branch terminator as a split point
Nadeeshan96 Jul 13, 2023
194f1ba
Do not consider every instruction LHS operands
Nadeeshan96 Jul 13, 2023
7e30760
Add few more onfail negative tests
pcnfernando Jul 13, 2023
93deae3
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Jul 14, 2023
e60815a
Split functions only at last set array elements
Nadeeshan96 Jul 14, 2023
621b44b
Extract deprecate warning to a method
dulajdilshan Jul 14, 2023
a20ca5d
Implement deprecated usage warnings for func params
dulajdilshan Jul 14, 2023
f8469b7
Add more tests
dulajdilshan Jul 14, 2023
a05e734
Improve deprecate warning logic
dulajdilshan Jul 14, 2023
4262708
Merge branch 'mas-f-lmo-f-large-start-splits' into master-fix-large-a…
Nadeeshan96 Jul 14, 2023
5d6b91d
Print NewMap initial values in BIREmitter
Nadeeshan96 Jul 14, 2023
8710649
Fix adding instructions with error table operands
Nadeeshan96 Jul 17, 2023
4991a1f
Fix rectifyVarKindsAndTerminators method
Nadeeshan96 Jul 17, 2023
1cf6448
Remove the check for ignoring comment minutiae
TharushiJay Jun 28, 2023
32583fd
Add unit test
TharushiJay Jun 29, 2023
29ce6d9
Consider license header in add import completion item
TharushiJay Jul 17, 2023
1afddce
Add unit test
TharushiJay Jul 17, 2023
97d4aef
Fix failing tests
TharushiJay Jul 17, 2023
3c5da0a
Fix failing compiler plugin completion tests
TharushiJay Jul 18, 2023
9533ae6
Introduce LargeStructureUtils class
Nadeeshan96 Jul 19, 2023
09b4f5d
Split function further with high instruction count
Nadeeshan96 Jul 19, 2023
427c32b
Introduce JLargeArrayInstruction instruction
Nadeeshan96 Jul 19, 2023
f4276d0
Improve large method optimizer bug fix
HindujaB Jul 19, 2023
e2eb5e6
Use single map per function when rectifying vars
Nadeeshan96 Jul 20, 2023
858a9ed
Clean the newly added code
Nadeeshan96 Jul 20, 2023
cc4d6e2
Set thresholds and remove clutter
Nadeeshan96 Jul 20, 2023
c19efc9
Fix failing BirVariableOptimizationTest tests
Nadeeshan96 Jul 20, 2023
0013204
Remove unnecessary variables
Nadeeshan96 Jul 20, 2023
8b6eff5
Add tests for large arrays
Nadeeshan96 Jul 21, 2023
3f63072
Merge branch 'master' of https://github.com/ballerina-platform/baller…
MaryamZi Jul 24, 2023
07af243
Change split function argument count
Nadeeshan96 Jul 24, 2023
559f1da
Add test for large array and tuple
Nadeeshan96 Jul 24, 2023
c1cb2fc
Revert "Set thresholds and remove clutter"
Nadeeshan96 Jul 24, 2023
11d840e
Add methods for maps in LargeStructureUtils
Nadeeshan96 Jul 24, 2023
08d847b
Add JLargeMapInstruction class
Nadeeshan96 Jul 24, 2023
e5967e7
Fix formatting
MaryamZi Jul 24, 2023
71b250f
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Jul 25, 2023
10066d3
Support splitting large maps
Nadeeshan96 Jul 26, 2023
e0e540d
Fix passing map key arguments to split function
Nadeeshan96 Jul 26, 2023
4eda95c
Use referred type and refactor
dulajdilshan Jul 26, 2023
e7edce2
Collect only last set map key operands
Nadeeshan96 Jul 26, 2023
b3cfba1
Fix NPE if matching field not-found
dulajdilshan Jul 26, 2023
06bdfe7
Do not set map key values when key is not set
Nadeeshan96 Jul 27, 2023
8356e70
Merge pull request #40942 from MaryamZi/fix-subtyping-w-optional-fields
MaryamZi Jul 27, 2023
df21b2a
Add missing parent function local variable
Nadeeshan96 Jul 27, 2023
4c67dd1
Fix checking object constructor name
Nadeeshan96 Jul 28, 2023
ed1f81c
Add deprecate warning for positional args for rest args
dulajdilshan Jul 28, 2023
c8dfcb7
Rearrange basic blocks after generating splits
Nadeeshan96 Jul 28, 2023
0b9d0b0
Add more tests for deprecated param usages
dulajdilshan Jul 28, 2023
b9cb50d
Rearrange basic blocks after generating splits
Nadeeshan96 Jul 28, 2023
df7367c
Add ConstLoad instructions to first basic block
Nadeeshan96 Jul 28, 2023
53ada32
Fix null pointer exception
Nadeeshan96 Jul 28, 2023
da05fa9
Refactor code
Nadeeshan96 Jul 28, 2023
ae82258
Merge branch 'mas-fla-36440-split-map' into master-fix-large-arr-36440
Nadeeshan96 Jul 31, 2023
8455c46
Remove BIRTerminator getKind method
Nadeeshan96 Jul 31, 2023
aa6d983
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Jul 31, 2023
619bfcb
Set thresholds and remove unneeded code
Nadeeshan96 Jul 31, 2023
83bec0a
Add support to pull command
Thevakumar-Luheerathan Jul 25, 2023
cd7cd77
Add resolution support for custom repos
Thevakumar-Luheerathan Jul 26, 2023
995bafa
Add changes for DefaultPackageResolver
Thevakumar-Luheerathan Jul 28, 2023
3739dc4
Add support to the push command
Thevakumar-Luheerathan Jul 31, 2023
8efa456
Add proxy support
Thevakumar-Luheerathan Jul 31, 2023
e73952f
Set local var start and end BBs for map key vars
Nadeeshan96 Jul 31, 2023
1cfaa1a
Check compilation errors in BRunUtil run method
Nadeeshan96 Jul 31, 2023
116537a
Fix review suggestions
chiranSachintha Aug 1, 2023
9cbd31d
Merge branch 'master' of https://github.com/ballerina-platform/baller…
chiranSachintha Aug 1, 2023
bb22c81
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Aug 2, 2023
47e9001
Report deprecated usage warning for rest args
dulajdilshan Aug 2, 2023
916127c
Add local module dependency to Ballerina.toml
KavinduZoysa Aug 2, 2023
964f8a3
Remove unreachable logic
dulajdilshan Aug 2, 2023
8951b8f
Merge branch 'master' of https://github.com/ballerina-platform/baller…
KavinduZoysa Aug 2, 2023
05e13d8
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Aug 2, 2023
f167ee8
Refactor CustomPackageRepository
Thevakumar-Luheerathan Aug 2, 2023
4f62513
Consider map key-value all var kinds
Nadeeshan96 Aug 3, 2023
11543b7
Add support for complex deprecated scenes
dulajdilshan Aug 7, 2023
9225056
Replace with tag comparison
dulajdilshan Aug 7, 2023
9461771
Improved referredType usages
dulajdilshan Aug 7, 2023
eee15e9
Fixed unnecessary change in comment
dulajdilshan Aug 7, 2023
d185a95
Merge pull request #41164 from ballerina-platform/master
MaryamZi Aug 7, 2023
cae7e91
Fix checkstyle errors
dulajdilshan Aug 7, 2023
897f0c9
Fix review suggestions
KavinduZoysa Aug 3, 2023
34eb2e7
Add tests
Thevakumar-Luheerathan Aug 7, 2023
0d6028f
Merge remote-tracking branch 'upstream/master' into fix-ballerina-lan…
Thevakumar-Luheerathan Aug 7, 2023
4962af1
Handle error completion with aggregation clause
pcnfernando Aug 7, 2023
3615abb
Add few negative tests
pcnfernando Aug 8, 2023
706e711
Fix spotbug
KavinduZoysa Aug 8, 2023
1a1c366
Fix checkstyle failure
pcnfernando Aug 8, 2023
345abe4
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Aug 8, 2023
54aef90
Update error codes
SasinduDilshara Aug 8, 2023
e33d075
Merge branch 'issue-#34821' of https://github.com/SasinduDilshara/bal…
SasinduDilshara Aug 8, 2023
d34db6a
Add tests for PushCommand
Thevakumar-Luheerathan Aug 7, 2023
8370a4e
Add tests for CustomPackageRepository
Thevakumar-Luheerathan Aug 8, 2023
a4f8825
Refactor Settings.toml creation
Thevakumar-Luheerathan Aug 8, 2023
5432753
Fix build failure
Thevakumar-Luheerathan Aug 9, 2023
e2ec8ce
Update diagnostic codes
SasinduDilshara Aug 9, 2023
ca1a07a
Address review comments
dulajdilshan Aug 9, 2023
59a338d
Address review comments
dulajdilshan Aug 10, 2023
775dcd5
Add test with array spread operator
Nadeeshan96 Aug 10, 2023
3cd8887
Add test with large maps and records
Nadeeshan96 Aug 10, 2023
7af69c9
Fix build failure
Thevakumar-Luheerathan Aug 10, 2023
4f33405
Merge branch 'master' of https://github.com/ballerina-platform/baller…
pcnfernando Aug 10, 2023
48ab894
Separate compilation and execution in large tests
Nadeeshan96 Aug 10, 2023
7f1c2e8
Improve test coverage
Nadeeshan96 Aug 10, 2023
4f62c12
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Aug 10, 2023
49f8e54
Remove null check for type
dulajdilshan Aug 10, 2023
a892bd5
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Aug 10, 2023
33850bd
Merge remote-tracking branch 'upstream/master' into fix40823
malinthar Aug 10, 2023
5b69400
Change logic to resolve module seperated by dot
KavinduZoysa Aug 10, 2023
ffaa972
Merge branch 'master' of https://github.com/ballerina-platform/baller…
KavinduZoysa Aug 10, 2023
5dc6764
Reduce indentation by adding continue;
dulajdilshan Aug 11, 2023
8d59e78
Fix failing tests
malinthar Aug 11, 2023
a4514eb
Address the code review
Thevakumar-Luheerathan Aug 11, 2023
1486411
Add tests with spread entry for maps and arrays
Nadeeshan96 Aug 13, 2023
5822c33
Remove unnecessary fixing split func local var BB
Nadeeshan96 Aug 13, 2023
6d66bed
Improve test coverage and add comments
Nadeeshan96 Aug 13, 2023
595e61f
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Aug 13, 2023
9a9c189
Merge pull request #41201 from ballerina-platform/master
MaryamZi Aug 14, 2023
95ed36b
Fix review suggestions
chiranSachintha Aug 14, 2023
3f153e0
Merge branch 'master' into fix/deprecate-record-field-40363
dulajdilshan Aug 14, 2023
77b09bb
Fix field name resolving for immutable record type
LakshanWeerasinghe Jul 19, 2023
0139a96
Fix find exisiting record fields in RecordUtil
LakshanWeerasinghe Jul 19, 2023
9ed5f10
Add tests for fill record field code action
LakshanWeerasinghe Jul 19, 2023
cc5e506
Add tests for fill record field completions
LakshanWeerasinghe Aug 9, 2023
86d73de
Fix review suggestions
chiranSachintha Aug 14, 2023
006e427
Merge pull request #40890 from TharushiJay/fix40823
malinthar Aug 14, 2023
4381741
Merge pull request #41053 from LakshanWeerasinghe/fix-#40294
LakshanWeerasinghe Aug 14, 2023
cf20956
Address review suggestions
ushirask Aug 14, 2023
4cce893
Merge branch 'ballerina-platform:master' into issue_39341
ushirask Aug 14, 2023
567e622
Merge pull request #40545 from dulajdilshan/fix/deprecate-record-fiel…
dulajdilshan Aug 14, 2023
27f05db
Merge branch 'ballerina-platform:master' into pr_39358
ushirask Aug 14, 2023
d85ed69
Merge branch 'ballerina-platform:master' into issue_39341
ushirask Aug 14, 2023
78ef046
Fix review suggestions
chiranSachintha Aug 14, 2023
2be36e6
Add review suggestions
KavinduZoysa Aug 14, 2023
e7f7f2c
Merge branch 'master' of https://github.com/ballerina-platform/baller…
prakanth97 Aug 14, 2023
ec3a681
Refactor the MavenPackageRepository
Thevakumar-Luheerathan Aug 14, 2023
7646f99
Add help text
Thevakumar-Luheerathan Aug 14, 2023
0c23902
Fix review suggestions
chiranSachintha Aug 15, 2023
3d0780d
Merge branch 'master' into issue_39959
ushirask Aug 15, 2023
d914ed9
Merge pull request #41146 from KavinduZoysa/fix-issue-35645
KavinduZoysa Aug 15, 2023
511c87c
Merge branch 'master' of https://github.com/ballerina-platform/baller…
SasinduDilshara Aug 15, 2023
c00df1f
Remove java stream usages
Nadeeshan96 Aug 15, 2023
b58a604
Refactor tests
chiranSachintha Aug 15, 2023
dad8dbb
Merge pull request #41172 from pcnfernando/issue_41104
pcnfernando Aug 15, 2023
4925404
Merge pull request #40971 from pcnfernando/issue_38530
gimantha Aug 15, 2023
f6430ee
Merge pull request #39600 from ushirask/issue_39341
hasithaa Aug 15, 2023
1417c40
Merge pull request #41100 from ballerina-platform/fix-subtyping-w-opt…
MaryamZi Aug 15, 2023
07202cb
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Aug 15, 2023
f262094
Merge pull request #38245 from prakanth97/issue_18639
hasithaa Aug 15, 2023
b59f6f1
Merge pull request #40679 from ushirask/pr_39358
hasithaa Aug 15, 2023
60b1bb0
Modify settings schema
Thevakumar-Luheerathan Aug 15, 2023
86884a2
Mark platform as any for testOnly platform libs
ShammiL Jul 17, 2023
1748cb7
Fix graalvm compatibility in patform libs test
ShammiL Jul 18, 2023
778a659
Fix merge conflict
ushirask Aug 15, 2023
2bf4098
Improve test coverage
Nadeeshan96 Aug 15, 2023
21c0b39
Address review suggestions
ushirask Aug 15, 2023
8c04b7b
Merge pull request #40774 from chiranSachintha/issue-40769
chiranSachintha Aug 15, 2023
d537d77
Fix line endings
Nadeeshan96 Aug 15, 2023
cebd881
Merge pull request #41033 from ShammiL/testonly-any-dependency
azinneera Aug 15, 2023
64982e4
Address the suggestions
Thevakumar-Luheerathan Aug 15, 2023
39dea0f
Fix typos and grammar in comments
Nadeeshan96 Aug 15, 2023
50008a0
Refactor generatePlatformIns method
Nadeeshan96 Aug 15, 2023
8371631
Address PR comments and fix checkstyle issues
Nadeeshan96 Aug 15, 2023
bfad17e
Merge branch 'master' into master-fix-large-arr-36440
Nadeeshan96 Aug 15, 2023
c9c65ef
Merge pull request #37832 from SasinduDilshara/issue-#34821
pcnfernando Aug 15, 2023
72f7e01
Merge pull request #40023 from ushirask/issue_39959
lochana-chathura Aug 15, 2023
d13b79d
Merge pull request #41177 from Thevakumar-Luheerathan/fix-ballerina-l…
azinneera Aug 16, 2023
a9e9d76
Merge pull request #41017 from Nadeeshan96/master-fix-large-arr-36440
warunalakshitha Aug 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -1152,6 +1152,12 @@ private static boolean checkIsRecordType(BRecordType sourceRecordType, BRecordTy
if (!SymbolFlags.isFlagOn(targetField.getFlags(), SymbolFlags.OPTIONAL)) {
return false;
}

if (!sourceRecordType.sealed && !checkIsType(sourceRecordType.restFieldType, targetField.getFieldType(),
unresolvedTypes)) {
return false;
}

continue;
}

Expand Down Expand Up @@ -1313,6 +1319,12 @@ private static boolean checkIsRecordType(MapValue sourceRecordValue, BRecordType
if (!SymbolFlags.isFlagOn(targetField.getFlags(), SymbolFlags.OPTIONAL)) {
return false;
}

if (!sourceRecordType.sealed && !checkIsType(sourceRecordType.restFieldType, targetField.getFieldType(),
unresolvedTypes)) {
return false;
}

continue;
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/*
* Copyright (c) 2023, WSO2 LLC. (https://www.wso2.com) All Rights Reserved.
*
* WSO2 LLC. licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except
* in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.ballerina.runtime.internal.util;

import io.ballerina.runtime.api.values.BArray;
import io.ballerina.runtime.api.values.BMap;
import io.ballerina.runtime.api.values.BMapInitialValueEntry;
import io.ballerina.runtime.internal.values.HandleValue;
import io.ballerina.runtime.internal.values.ListInitialValueEntry;
import io.ballerina.runtime.internal.values.MappingInitialValueEntry;

/**
* Util methods required for handling large arrays, tuples, maps and records.
*
* @since 2201.8.0
*/
public class LargeStructureUtils {

private LargeStructureUtils() {}

public static HandleValue getListInitialValueEntryArray(long size) {
return new HandleValue(new ListInitialValueEntry[(int) size]);
}

public static void setExpressionEntry(HandleValue arrayList, Object element, long index) {
ListInitialValueEntry[] arr = (ListInitialValueEntry[]) arrayList.getValue();
arr[(int) index] = new ListInitialValueEntry.ExpressionEntry(element);
}

public static void setSpreadEntry(HandleValue arrayList, Object element, long index) {
ListInitialValueEntry[] arr = (ListInitialValueEntry[]) arrayList.getValue();
arr[(int) index] = new ListInitialValueEntry.SpreadEntry((BArray) element);
}

public static HandleValue getBMapInitialValueEntryArray(long size) {
return new HandleValue(new BMapInitialValueEntry[(int) size]);
}

public static void setKeyValueEntry(HandleValue arrayList, Object key, Object value, long index) {
BMapInitialValueEntry[] arr = (BMapInitialValueEntry[]) arrayList.getValue();
arr[(int) index] = new MappingInitialValueEntry.KeyValueEntry(key, value);
}

public static void setSpreadFieldEntry(HandleValue arrayList, Object spreadFieldEntry, long index) {
BMapInitialValueEntry[] arr = (BMapInitialValueEntry[]) arrayList.getValue();
arr[(int) index] = new MappingInitialValueEntry.SpreadFieldEntry((BMap) spreadFieldEntry);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ public class HandleValue implements BHandle, RefValue {
private Object value;
private BTypedesc typedesc;

@Deprecated
public HandleValue(Object value) {
this.value = value;
}
Expand Down
1 change: 1 addition & 0 deletions cli/ballerina-cli/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ dependencies {
implementation group: 'org.ow2.asm', name: 'asm', version: "${project.ow2AsmVersion}"
implementation group: 'org.ow2.asm', name: 'asm-commons', version: "${project.ow2AsmCommonsVersion}"
implementation group: 'org.ow2.asm', name: 'asm-tree', version: "${project.ow2AsmTreeVersion}"
implementation 'commons-io:commons-io'

testImplementation "org.testng:testng:${project.testngVersion}"
testImplementation "org.mockito:mockito-core:${project.mockitoCoreVersion}"
Expand Down
8 changes: 8 additions & 0 deletions cli/ballerina-cli/spotbugs-exclude.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,14 @@
-->

<FindBugsFilter>
<Match>
<Class name="io.ballerina.cli.cmd.PullCommand"/>
<Bug pattern="NP_NULL_ON_SOME_PATH_FROM_RETURN_VALUE"/>
</Match>
<Match>
<Class name="io.ballerina.cli.cmd.PullCommand"/>
<Bug pattern="RV_RETURN_VALUE_IGNORED_BAD_PRACTICE"/>
</Match>
<Match>
<Class name="io.ballerina.cli.cmd.BuildCommand"/>
<Bug pattern="URF_UNREAD_FIELD"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,28 +18,39 @@

package io.ballerina.cli.cmd;

import com.google.gson.Gson;
import com.google.gson.JsonObject;
import io.ballerina.cli.BLauncherCmd;
import io.ballerina.projects.ProjectException;
import io.ballerina.projects.SemanticVersion;
import io.ballerina.projects.Settings;
import io.ballerina.projects.internal.model.Proxy;
import io.ballerina.projects.internal.model.Repository;
import io.ballerina.projects.util.ProjectConstants;
import io.ballerina.projects.util.ProjectUtils;
import org.ballerinalang.central.client.CentralAPIClient;
import org.ballerinalang.central.client.CentralClientConstants;
import org.ballerinalang.central.client.exceptions.CentralClientException;
import org.ballerinalang.central.client.exceptions.PackageAlreadyExistsException;
import org.ballerinalang.maven.bala.client.MavenResolverClient;
import org.ballerinalang.maven.bala.client.MavenResolverClientException;
import org.ballerinalang.toml.exceptions.SettingsTomlException;
import org.wso2.ballerinalang.compiler.util.Names;
import org.wso2.ballerinalang.util.RepoUtils;
import picocli.CommandLine;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;

import static io.ballerina.cli.cmd.Constants.PULL_COMMAND;
import static io.ballerina.cli.launcher.LauncherUtils.createLauncherException;
import static io.ballerina.projects.util.ProjectConstants.BALA_EXTENSION;
import static io.ballerina.projects.util.ProjectConstants.PLATFORM;
import static io.ballerina.projects.util.ProjectUtils.getAccessTokenOfCLI;
import static io.ballerina.projects.util.ProjectUtils.initializeProxy;
import static io.ballerina.projects.util.ProjectUtils.validateOrgName;
Expand Down Expand Up @@ -71,6 +82,9 @@ public class PullCommand implements BLauncherCmd {
@CommandLine.Option(names = "--debug", hidden = true)
private String debugPort;

@CommandLine.Option(names = "--repository")
private String repositoryName;

public PullCommand() {
this.errStream = System.err;
this.exitWhenFinish = true;
Expand Down Expand Up @@ -163,6 +177,77 @@ public void execute() {
}
}

Settings settings;
try {
settings = RepoUtils.readSettings();
} catch (SettingsTomlException e) {
settings = Settings.from();
}

Repository targetRepository = null;
if (repositoryName != null) {
for (Repository repository : settings.getRepositories()) {
if (repositoryName.equals(repository.id())) {
targetRepository = repository;
break;
}
}
}

if (targetRepository == null && repositoryName != null) {
String errMsg = "unsupported repository '" + repositoryName + "' found. Only " +
"repositories mentioned in the Settings.toml are supported.";
CommandUtil.printError(this.errStream, errMsg, null, false);
CommandUtil.exitError(this.exitWhenFinish);
return;
}

if (targetRepository != null) {
MavenResolverClient mavenResolverClient = new MavenResolverClient();
if (!targetRepository.username().isEmpty() && !targetRepository.password().isEmpty()) {
mavenResolverClient.addRepository(targetRepository.id(), targetRepository.url(),
targetRepository.username(), targetRepository.password());
} else {
mavenResolverClient.addRepository(targetRepository.id(), targetRepository.url());
}
Proxy proxy = settings.getProxy();
mavenResolverClient.setProxy(proxy.host(), proxy.port(), proxy.username(), proxy.password());

Path mavenBalaCachePath = RepoUtils.createAndGetHomeReposPath()
.resolve(ProjectConstants.REPOSITORIES_DIR)
.resolve(targetRepository.id())
.resolve(ProjectConstants.BALA_DIR_NAME);

try {
Path tmpDownloadDirectory = Files.createTempDirectory("ballerina-" + System.nanoTime());
mavenResolverClient.pullPackage(orgName, packageName, version,
String.valueOf(tmpDownloadDirectory.toAbsolutePath()));
Path balaDownloadPath = tmpDownloadDirectory.resolve(orgName).resolve(packageName).resolve(version)
.resolve(packageName + "-" + version + BALA_EXTENSION);
Path temporaryExtractionPath = tmpDownloadDirectory.resolve(orgName).resolve(packageName)
.resolve(version).resolve(PLATFORM);
ProjectUtils.extractBala(balaDownloadPath, temporaryExtractionPath);
Path packageJsonPath = temporaryExtractionPath.resolve("package.json");
try (BufferedReader bufferedReader = Files.newBufferedReader(packageJsonPath, StandardCharsets.UTF_8)) {
JsonObject resultObj = new Gson().fromJson(bufferedReader, JsonObject.class);
String platform = resultObj.get(PLATFORM).getAsString();
Path actualBalaPath = mavenBalaCachePath.resolve(orgName).resolve(packageName)
.resolve(version).resolve(platform);
org.apache.commons.io.FileUtils.copyDirectory(temporaryExtractionPath.toFile(),
actualBalaPath.toFile());
}
} catch (MavenResolverClientException e) {
errStream.println("unexpected error occurred while pulling package:" + e.getMessage());
CommandUtil.exitError(this.exitWhenFinish);
} catch (IOException e) {
throw createLauncherException(
"unexpected error occurred while creating package repository in bala cache: " + e.getMessage());
}
PrintStream out = System.out;
out.println("Successfully pulled the package from the custom repository.");
return;
}

Path packagePathInBalaCache = ProjectUtils.createAndGetHomeReposPath()
.resolve(ProjectConstants.REPOSITORIES_DIR).resolve(ProjectConstants.CENTRAL_REPOSITORY_CACHE_NAME)
.resolve(ProjectConstants.BALA_DIR_NAME)
Expand All @@ -180,14 +265,6 @@ public void execute() {
for (int i = 0; i < SUPPORTED_PLATFORMS.length; i++) {
String supportedPlatform = SUPPORTED_PLATFORMS[i];
try {
Settings settings;
try {
settings = RepoUtils.readSettings();
// Ignore Settings.toml diagnostics in the pull command
} catch (SettingsTomlException e) {
// Ignore 'Settings.toml' parsing errors and return empty Settings object
settings = Settings.from();
}
CentralAPIClient client = new CentralAPIClient(RepoUtils.getRemoteRepoURL(),
initializeProxy(settings.getProxy()), settings.getProxy().username(),
settings.getProxy().password(), getAccessTokenOfCLI(settings));
Expand Down
Loading
Loading