lib/packwerk/dependency_checker.rb in packwerk-1.1.1 vs lib/packwerk/dependency_checker.rb in packwerk-1.1.2
- old
+ new
@@ -1,26 +1,34 @@
-# typed: true
+# typed: strict
# frozen_string_literal: true
require "packwerk/violation_type"
require "packwerk/checker"
module Packwerk
class DependencyChecker
+ extend T::Sig
include Checker
+ sig { override.returns(ViolationType) }
def violation_type
ViolationType::Dependency
end
+ sig do
+ override
+ .params(reference: Packwerk::Reference, reference_lister: Packwerk::ReferenceLister)
+ .returns(T::Boolean)
+ end
def invalid_reference?(reference, reference_lister)
- return unless reference.source_package
- return unless reference.source_package.enforce_dependencies?
- return if reference.source_package.dependency?(reference.constant.package)
- return if reference_lister.listed?(reference, violation_type: violation_type)
+ return false unless reference.source_package
+ return false unless reference.source_package.enforce_dependencies?
+ return false if reference.source_package.dependency?(reference.constant.package)
+ return false if reference_lister.listed?(reference, violation_type: violation_type)
true
end
+ sig { override.params(reference: Packwerk::Reference).returns(String) }
def message_for(reference)
"Dependency violation: #{reference.constant.name} belongs to '#{reference.constant.package}', but " \
"'#{reference.source_package}' does not specify a dependency on " \
"'#{reference.constant.package}'.\n" \
"Are we missing an abstraction?\n" \