profile
viewpoint
If you are wondering where the data of this site comes from, please visit https://api.github.com/users/vlm/events. GitMemory does not store any data, but only uses NGINX to cache data for a period of time. The idea behind GitMemory is simply to give users a better reading experience.
Lev Walkin vlm @apple https://www.linkedin.com/in/lionet/ Not all open source contributions are on behalf of my employer. Commits are not endorsements. I don't speak for Apple.

vlm/asn1c 712

The ASN.1 Compiler

vlm/prog-course-1 60

Курс повышения квалификации

vlm/zip-fix-filename-encoding 36

Fix cyrillic character encoding of filenames inside zip archives

vlm/ExampleWatchGraph 25

Example Apple Watch App showing how to draw dynamic charts

vlm/dump-ios-mobileprovision 19

Extract XML PLIST from binary PKCS#7 iOS mobile provision profile

vlm/programming-exercise-c-1 11

Programming assignment for interview, C or C++

vlm/ldap-server-example 7

A toy LDAP server in C for illustrative purposes

vlm/ulcamp.ru 6

Site for ULCAMP IT-society

digamma-ai/asn1fpcoq 5

Coq formalization of ASN.1 floating point

vlm/erlaws 5

Erlang Amazon WebServices

Pull request review commentapple/swift-evolution

Fix typos in SE-0309

 func test(_ collection: RandomAccessCollection) { ``` ___ -This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value iff the following criteria hold:+This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value if and only if the following criteria hold: * The type of the invoked member (accessor — for storage declarations), as viewed in context of the *base type*, must **not** contain references to `Self` or `Self`-rooted associated types in [non-covariant](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)) position.

While examining this section, I found the sentence structure here a bit hard to parse. I suggest we reverse the wording for easier understanding, which then also mirrors the outlined limitations above

This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value *unless*:
* The type of the invoked member (accessor — for storage declarations), as viewed in context of the *base type*, contains references to `Self` or `Self`-rooted associated types in [non-covariant](https://en.wikipedia.org/wiki/Covariance_and_contravariance_(computer_science)) position.

Feel free to discard this suggestion if you think it's not necessary.

hybridcattt

comment created time in an hour

Pull request review commentapple/swift-evolution

Fix typos in SE-0309

 func test(_ collection: RandomAccessCollection) { ``` ___ -This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value iff the following criteria hold:+This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value if the following criteria hold:

Updated to use the spelled out version. From the context it seems intentional and not a typo.

hybridcattt

comment created time in an hour

pull request commentapple/swift

[cmake] [unittests] include googletest headers to Xcode project header search paths

Hum, interesting ... this could potentially fix the problem people were having https://forums.swift.org/t/gtest-gtest-h-not-found-in-typeref-cpp-while-compiling-the-compiler/44399 ?

rollmind

comment created time in 2 hours

push eventapple/swift

Luciano Almeida

commit sha ddeb1929c47b4ac5f88473ce36471941ffbbb4b2

[DiagnosticQol][SR-14505] Use DeclDescriptive kind in missing return data flow diagnostics (#36952) * [Diagnostics] Use DeclDescriptiveKind on data flow diagnostics to improve diagnostic message * [tests] Add regression tests to SILOptimizer/return.swift * [tests] Adapt other tests to changes of SR-14505 * [Diagnostics] Adapt message for missing return diagnostics, remove article * [Diagnostics] Adapt message for missing return diagnostics to have a note with fix * [tests] Adjust tests in validation suit

view details

swift_jenkins

commit sha 752948a9fe6b291aa86f2e9010c14997a7c6ed9d

Merge remote-tracking branch 'origin/main' into next

view details

push time in 2 hours

push eventapple/swift

Luciano Almeida

commit sha ddeb1929c47b4ac5f88473ce36471941ffbbb4b2

[DiagnosticQol][SR-14505] Use DeclDescriptive kind in missing return data flow diagnostics (#36952) * [Diagnostics] Use DeclDescriptiveKind on data flow diagnostics to improve diagnostic message * [tests] Add regression tests to SILOptimizer/return.swift * [tests] Adapt other tests to changes of SR-14505 * [Diagnostics] Adapt message for missing return diagnostics, remove article * [Diagnostics] Adapt message for missing return diagnostics to have a note with fix * [tests] Adjust tests in validation suit

view details

push time in 2 hours

PR merged apple/swift

[DiagnosticQol][SR-14505] Use DeclDescriptive kind in missing return data flow diagnostics

<!-- What's in this pull request? --> Separate closure and declaration on diagnoseMissingReturn data flow diagnostics and use better descriptive naming.

<!-- If this pull request resolves any bugs in the Swift bug tracker, provide a link: --> Resolves SR-14505.

<!-- Before merging this pull request, you must run the Swift continuous integration tests. For information about triggering CI builds via @swift-ci, see: https://github.com/apple/swift/blob/master/docs/ContinuousIntegration.md#swift-ci

Thank you for your contribution to Swift! -->

+124 -58

11 comments

9 changed files

LucianoPAlmeida

pr closed time in 2 hours

pull request commentapple/swift

[cmake] [unittests] include googletest headers to Xcode project header search paths

@varungandhi-apple check please, and thank you.

rollmind

comment created time in 2 hours

PR opened apple/swift

[cmake] [unittests] include googletest headers to Xcode project header search paths

add target include directories on AddSwiftUnittests.cmake module. currently generated Xcode project doesn't include googletest headers after https://reviews.llvm.org/D86616

+3 -0

0 comment

1 changed file

pr created time in 2 hours

Pull request review commentapple/swift

[DNM] Lift the 'Self or associated type' restriction

 bool ASTContext::isASCIIString(StringRef s) const {   }   return true; }++/// Classify usages of Self in the given type.+///+/// \param position The position we are currently at, in terms of variance.+static SelfReferenceInfo+findExistentialSelfReferences(GenericSignature existentialSig, Type type,+                              SelfReferencePosition position) {+  // If there are no type parameters, we're done.+  if (!type->hasTypeParameter())+    return SelfReferenceInfo();++  // Tuples preserve variance.+  if (auto tuple = type->getAs<TupleType>()) {+    auto info = SelfReferenceInfo();+    for (auto &elt : tuple->getElements()) {+      info |= findExistentialSelfReferences(existentialSig, elt.getType(),+                                            position);+    }++    // A covariant Self result inside a tuple will not be bona fide.+    info.hasCovariantSelfResult = false;++    return info;+  }++  // Function preserve variance in the result type, and flip variance in+  // the parameter type.+  if (auto funcTy = type->getAs<AnyFunctionType>()) {+    auto inputInfo = SelfReferenceInfo();+    for (auto param : funcTy->getParams()) {+      // inout parameters are invariant.+      if (param.isInOut()) {+        inputInfo |=+            findExistentialSelfReferences(existentialSig, param.getPlainType(),+                                          SelfReferencePosition::Invariant);+        continue;+      }+      inputInfo |= findExistentialSelfReferences(+          existentialSig, param.getParameterType(), position.flipped());+    }++    // A covariant Self result inside a parameter will not be bona fide.+    inputInfo.hasCovariantSelfResult = false;++    auto resultInfo = findExistentialSelfReferences(+        existentialSig, funcTy->getResult(), position);+    if (resultInfo.selfRef == SelfReferencePosition::Covariant) {+      resultInfo.hasCovariantSelfResult = true;+    }+    return inputInfo |= resultInfo;+  }++  // Metatypes preserve variance.+  if (auto metaTy = type->getAs<MetatypeType>()) {+    return findExistentialSelfReferences(existentialSig,+                                         metaTy->getInstanceType(), position);+  }++  // Optionals preserve variance.+  if (auto optType = type->getOptionalObjectType()) {+    return findExistentialSelfReferences(existentialSig, optType, position);+  }++  // DynamicSelfType preserves variance.+  // FIXME: This shouldn't ever appear in protocol requirement+  // signatures.+  if (auto selfType = type->getAs<DynamicSelfType>()) {+    return findExistentialSelfReferences(existentialSig,+                                         selfType->getSelfType(), position);+  }++  // Bound generic types are invariant.+  if (auto boundGenericType = type->getAs<BoundGenericType>()) {

Special-case covariance is already implemented on the main branch. This branch needs a rebase.

theblixguy

comment created time in 2 hours

pull request commentapple/swift

[SourceKit] Add locations for symbols in external modules

Artem ended up making it compile-able in older compilers, so should hopefully work this time 🤞

@swift-ci please build toolchain macOS platform

bnbarham

comment created time in 2 hours

Pull request review commentapple/swift-evolution

Fix typos in SE-0309

 func test(_ collection: RandomAccessCollection) { ``` ___ -This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value iff the following criteria hold:+This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value if the following criteria hold:

"iff" was removed from public API documentation: apple/swift#27115

hybridcattt

comment created time in 3 hours

Pull request review commentapple/swift-evolution

Fix typos in SE-0309

 func test(_ collection: RandomAccessCollection) { ``` ___ -This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value iff the following criteria hold:+This way, a protocol or protocol extension member (method/property/subscript/initializer) may be used on an existential value if the following criteria hold:

TIL - I've never seen it shortened like that before (having studied math in another language). Would you agree that it'd be clearer, if it's spelled out fully?

hybridcattt

comment created time in 3 hours

pull request commentapple/swift-corelibs-foundation

[UserDefaults.swift] - Improved readability of some codes.

cc: @stephencelis @phausler

mustafagunes

comment created time in 3 hours

push eventapple/swift-evolution

Kirill Titov

commit sha 80602141f65b3fc8a98283e1e8dc4fe1b51312bd

0311 minor fixes (#1335) Plain text print to actual call

view details

push time in 4 hours

PR merged apple/swift-evolution

0311 print fixes

Plain text print to actual call

+5 -5

2 comments

1 changed file

kirilltitov

pr closed time in 4 hours

pull request commentapple/swift-evolution

0311 print fixes

Sure, might as well -- thank you.

kirilltitov

comment created time in 4 hours

pull request commentapple/swift-evolution

0311 print fixes

cc @ktoso

kirilltitov

comment created time in 4 hours

PR opened apple/swift-evolution

0311 print fixes

Plain text print to actual call

+5 -5

0 comment

1 changed file

pr created time in 4 hours

pull request commentapple/swift

CanonicalizeOSSA: Destructure canonicalization and conslidate borrow scope support for destructure

Build failed Swift Test OS X Platform Git Sha - 1fe88cd0b7308ac390bb91fb9f9b421e28fb3e25

atrick

comment created time in 4 hours

pull request commentapple/swift

CanonicalizeOSSA: Destructure canonicalization and conslidate borrow scope support for destructure

Build failed Swift Test Linux Platform Git Sha - 1fe88cd0b7308ac390bb91fb9f9b421e28fb3e25

atrick

comment created time in 5 hours

startedvlm/asn1c

started time in 5 hours

pull request commentapple/swift

CanonicalizeOSSA: Destructure canonicalization and conslidate borrow scope support for destructure

Performance: -O

Regression OLD NEW DELTA RATIO
Breadcrumbs.MutatedUTF16ToIdx.Mixed 299 1241 +315.0% 0.24x
Breadcrumbs.MutatedIdxToUTF16.Mixed 309 1247 +303.6% 0.25x
StringFromLongWholeSubstring 4 5 +25.0% 0.80x
NSStringConversion.UTF8 959 1076 +12.2% 0.89x (?)
UTF8Decode_InitFromBytes_ascii 296 327 +10.5% 0.91x (?)
AngryPhonebook 476 525 +10.3% 0.91x
SubstringFromLongString 10 11 +10.0% 0.91x (?)
NSStringConversion.LongUTF8 507 548 +8.1% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
ObjectiveCBridgeFromNSArrayAnyObject 21300 19600 -8.0% 1.09x (?)
DictionaryKeysContainsCocoa 28 26 -7.1% 1.08x (?)

Code size: -O

Improvement OLD NEW DELTA RATIO
MonteCarloE.o 2889 2801 -3.0% 1.03x
RangeAssignment.o 3401 3313 -2.6% 1.03x
FlattenList.o 3978 3898 -2.0% 1.02x
ArraySetElement.o 1308 1284 -1.8% 1.02x
BucketSort.o 8799 8639 -1.8% 1.02x
COWArrayGuaranteedParameterOverhead.o 1383 1359 -1.7% 1.02x
Sim2DArray.o 1388 1364 -1.7% 1.02x
Array2D.o 2949 2901 -1.6% 1.02x
RomanNumbers.o 6886 6790 -1.4% 1.01x
ArraySubscript.o 2414 2382 -1.3% 1.01x
RangeOverlaps.o 6658 6570 -1.3% 1.01x
ObserverClosure.o 2446 2414 -1.3% 1.01x
ObserverPartiallyAppliedMethod.o 2493 2461 -1.3% 1.01x
SortLettersInPlace.o 8290 8184 -1.3% 1.01x
ClassArrayGetter.o 3352 3310 -1.3% 1.01x
PopFrontGeneric.o 2694 2662 -1.2% 1.01x
ReversedCollections.o 8662 8566 -1.1% 1.01x
DictionaryGroup.o 11799 11671 -1.1% 1.01x
Memset.o 2227 2203 -1.1% 1.01x
Combos.o 6038 5974 -1.1% 1.01x
SortIntPyramids.o 9136 9040 -1.1% 1.01x
Join.o 1593 1577 -1.0% 1.01x
DictionaryOfAnyHashableStrings.o 8000 7920 -1.0% 1.01x

Performance: -Osize

Regression OLD NEW DELTA RATIO
Breadcrumbs.MutatedUTF16ToIdx.Mixed 298 1243 +317.1% 0.24x
Breadcrumbs.MutatedIdxToUTF16.Mixed 302 1249 +313.6% 0.24x
NSError 235 317 +34.9% 0.74x (?)
ArrayAppendUTF16Substring 28116 30636 +9.0% 0.92x (?)
ArrayAppendLatin1Substring 28728 31212 +8.6% 0.92x (?)
ArrayAppendAsciiSubstring 28116 30492 +8.5% 0.92x (?)
ProtocolDispatch 371 400 +7.8% 0.93x (?)
 
Improvement OLD NEW DELTA RATIO
Set.isStrictSubset.Int.Empty 88 82 -6.8% 1.07x (?)
Set.isSubset.Empty.Int 168 157 -6.5% 1.07x (?)

Code size: -Osize

Improvement OLD NEW DELTA RATIO
MonteCarloE.o 2857 2778 -2.8% 1.03x
RangeAssignment.o 3256 3177 -2.4% 1.02x
ArraySetElement.o 1291 1260 -2.4% 1.02x
Sim2DArray.o 1343 1312 -2.3% 1.02x
COWArrayGuaranteedParameterOverhead.o 1362 1331 -2.3% 1.02x
FlattenList.o 3824 3745 -2.1% 1.02x
Join.o 1598 1567 -1.9% 1.02x
BucketSort.o 8398 8255 -1.7% 1.02x
RomanNumbers.o 5241 5153 -1.7% 1.02x
ClassArrayGetter.o 3087 3037 -1.6% 1.02x
Memset.o 1930 1899 -1.6% 1.02x
ReversedCollections.o 7510 7400 -1.5% 1.01x
SortLettersInPlace.o 7687 7579 -1.4% 1.01x
RangeOverlaps.o 5633 5554 -1.4% 1.01x
StackPromo.o 2104 2076 -1.3% 1.01x
ArraySubscript.o 2440 2409 -1.3% 1.01x
ObserverClosure.o 2644 2613 -1.2% 1.01x
ObserverPartiallyAppliedMethod.o 2693 2662 -1.2% 1.01x
PopFrontGeneric.o 2742 2711 -1.1% 1.01x
ArrayOfRef.o 8528 8433 -1.1% 1.01x
SortArrayInClass.o 2809 2778 -1.1% 1.01x
ArrayOfGenericRef.o 8276 8185 -1.1% 1.01x
NopDeinit.o 4288 4242 -1.1% 1.01x
StringRemoveDupes.o 3746 3706 -1.1% 1.01x
DictionaryGroup.o 10363 10253 -1.1% 1.01x
Combos.o 6040 5976 -1.1% 1.01x
Hanoi.o 3083 3052 -1.0% 1.01x
RC4.o 3085 3054 -1.0% 1.01x
SortIntPyramids.o 8979 8890 -1.0% 1.01x

Performance: -Onone

Regression OLD NEW DELTA RATIO
Breadcrumbs.MutatedUTF16ToIdx.Mixed 308 1249 +305.5% 0.25x
Breadcrumbs.MutatedIdxToUTF16.Mixed 329 1265 +284.5% 0.26x
DataReplaceMediumBuffer 6900 7700 +11.6% 0.90x (?)
 
Improvement OLD NEW DELTA RATIO
String.replaceSubrange.Substring.Small 87 81 -6.9% 1.07x (?)

Code size: -swiftlibs

<details> <summary><strong>How to read the data</strong></summary> The tables contain differences in performance which are larger than 8% and differences in code size which are larger than 1%.

If you see any unexpected regressions, you should consider fixing the regressions before you merge the PR.

Noise: Sometimes the performance results (not code size!) contain false alarms. Unexpected regressions which are marked with '(?)' are probably noise. If you see regressions which you cannot explain you can try to run the benchmarks again. If regressions still show up, please consult with the performance team (@eeckstein). </details>

<details> <summary><strong>Hardware Overview</strong></summary>

  Model Name: Mac Pro
  Model Identifier: MacPro6,1
  Processor Name: 12-Core Intel Xeon E5
  Processor Speed: 2.7 GHz
  Number of Processors: 1
  Total Number of Cores: 12
  L2 Cache (per Core): 256 KB
  L3 Cache: 30 MB
  Memory: 64 GB

</details>

atrick

comment created time in 5 hours

push eventapple/swift

Konrad `ktoso` Malawski

commit sha 35a42efffd3c09f4062fe91bad5563afe40f0227

[Concurrency] Store child record when async let child task spawned

view details

Konrad `ktoso` Malawski

commit sha dea25d51816e30966125cc52559d9eadac273724

[AsyncLet] reimplemented with new ABI and builtins

view details

Konrad `ktoso` Malawski

commit sha 78f0105ac07418328bac4d00d419566d7d109a4d

[AsyncLet] remove runChild; it is now asyncLetStart

view details

Konrad `ktoso` Malawski

commit sha 656207c37668828e3fb9cc018024fa787fc7c14c

[AsyncLet] ending an async let cancels the task

view details

Konrad `ktoso` Malawski

commit sha c19210810d33887f3b9b4b2cb5e567532a4aa206

[AsyncLet] remove some commented out code

view details

Konrad `ktoso` Malawski

commit sha ba615029c7c9413d848555e9517036a44acc48b2

[Concurrency] Store child record when async let child task spawned

view details

Konrad `ktoso` Malawski

commit sha d3c5ebc9b73db60ba1a5466516d5c8c7d0328449

[AsyncLet] reimplemented with new ABI and builtins

view details

Konrad `ktoso` Malawski

commit sha eed96d21bbc0904090240b15b7f3a525dd971118

[AsyncLet] remove runChild; it is now asyncLetStart

view details

Konrad `ktoso` Malawski

commit sha fae3c9687442263ab36273ae38e5f34c9479eb87

[AsyncLet] ending an async let cancels the task

view details

Konrad `ktoso` Malawski

commit sha a5469c438acc8a0475556961fbe43683ee0cbad9

[AsyncLet] remove some commented out code

view details

Konrad `ktoso` Malawski

commit sha 77e60cf05b649bebe8a10d41724ab18f290d08fc

silence issue on windows

view details

Konrad `ktoso` Malawski

commit sha 13074e06e4e0d898f1cee28730a8e310446c9ea6

Merge branch 'wip-cleaner-abi-asynclet' of github.com:ktoso/swift into wip-cleaner-abi-asynclet

view details

Konrad `ktoso` Malawski

commit sha 64da78ca769cb4c03e5cb9e5445a4e1738a5b004

Merge branch 'main' into wip-cleaner-abi-asynclet

view details

Konrad `ktoso` Malawski

commit sha f3eff4a7c6c6be55a2dbe6dee0de63b2f23bad0a

Merge pull request #36938 from ktoso/wip-cleaner-abi-asynclet [Concurrency] Store child record when async let child task spawned

view details

swift_jenkins

commit sha 8a495314e86fdf06f4b4e4d29ce8a4879a60a3b9

Merge remote-tracking branch 'origin/main' into next

view details

push time in 6 hours

push eventapple/swift

Konrad `ktoso` Malawski

commit sha 35a42efffd3c09f4062fe91bad5563afe40f0227

[Concurrency] Store child record when async let child task spawned

view details

Konrad `ktoso` Malawski

commit sha dea25d51816e30966125cc52559d9eadac273724

[AsyncLet] reimplemented with new ABI and builtins

view details

Konrad `ktoso` Malawski

commit sha 78f0105ac07418328bac4d00d419566d7d109a4d

[AsyncLet] remove runChild; it is now asyncLetStart

view details

Konrad `ktoso` Malawski

commit sha 656207c37668828e3fb9cc018024fa787fc7c14c

[AsyncLet] ending an async let cancels the task

view details

Konrad `ktoso` Malawski

commit sha c19210810d33887f3b9b4b2cb5e567532a4aa206

[AsyncLet] remove some commented out code

view details

Konrad `ktoso` Malawski

commit sha ba615029c7c9413d848555e9517036a44acc48b2

[Concurrency] Store child record when async let child task spawned

view details

Konrad `ktoso` Malawski

commit sha d3c5ebc9b73db60ba1a5466516d5c8c7d0328449

[AsyncLet] reimplemented with new ABI and builtins

view details

Konrad `ktoso` Malawski

commit sha eed96d21bbc0904090240b15b7f3a525dd971118

[AsyncLet] remove runChild; it is now asyncLetStart

view details

Konrad `ktoso` Malawski

commit sha fae3c9687442263ab36273ae38e5f34c9479eb87

[AsyncLet] ending an async let cancels the task

view details

Konrad `ktoso` Malawski

commit sha a5469c438acc8a0475556961fbe43683ee0cbad9

[AsyncLet] remove some commented out code

view details

Konrad `ktoso` Malawski

commit sha 77e60cf05b649bebe8a10d41724ab18f290d08fc

silence issue on windows

view details

Konrad `ktoso` Malawski

commit sha 13074e06e4e0d898f1cee28730a8e310446c9ea6

Merge branch 'wip-cleaner-abi-asynclet' of github.com:ktoso/swift into wip-cleaner-abi-asynclet

view details

Konrad `ktoso` Malawski

commit sha 64da78ca769cb4c03e5cb9e5445a4e1738a5b004

Merge branch 'main' into wip-cleaner-abi-asynclet

view details

Konrad `ktoso` Malawski

commit sha f3eff4a7c6c6be55a2dbe6dee0de63b2f23bad0a

Merge pull request #36938 from ktoso/wip-cleaner-abi-asynclet [Concurrency] Store child record when async let child task spawned

view details

push time in 6 hours

PR merged apple/swift

[Concurrency] Store child record when async let child task spawned

Child tasks create a child record and store it when they start.

Without this the new test added here would hang forever, as during cancellation of the parent task we traverse the records in the parent, and cancel all children we find in there. If we didn't record these records it would mean that we would not find the child by traversing the parent on cancellation in swift_task_cancelImpl and they'd never get cancelled.

Group children already worked before, so this is only about async lets.

We also had the idea of all child tasks being task group children, but that's not implemented. It would mean that every function implicitly becomes a task group, and then children do the exact same as groups do -- this could be quite useful, but that's not yet done in the exact "desugar to exactly an implicit group" way.

Resolves rdar://74464296

Replaces #36645

+885 -162

16 comments

41 changed files

ktoso

pr closed time in 6 hours

pull request commentapple/swift

CanonicalizeOSSA: Destructure canonicalization and conslidate borrow scope support for destructure

@swift-ci test source compatibility

atrick

comment created time in 6 hours

PR opened apple/swift

CanonicalizeOSSA: Destructure canonicalization and conslidate borrow scope support for destructure

Canonicalize struct_extract to destructure and handle destructure in conslidate borrow scope. The later is still disabled. This is an incremental development step.

+993 -125

0 comment

5 changed files

pr created time in 6 hours

pull request commentapple/swift

[NFC] Introduce isDecl and getDeclType

@swift-ci please test

Azoy

comment created time in 6 hours