Skip to content

Commit 77c4927

Browse files
committed
Deselect declarations transitively depending on omitted declarations
Warn user in such cases
1 parent 2910847 commit 77c4927

File tree

14 files changed

+56
-17
lines changed

14 files changed

+56
-17
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
struct Omitted {
2+
int n;
3+
};
4+
5+
struct DependsOnOmitted {
6+
struct Omitted o;
7+
};
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version:
2+
hs_bindgen: 0.1.0
3+
binding_specification: '1.0'
4+
hsmodule: Example
5+
ctypes:
6+
- omit:
7+
headers: program-analysis/selection_omit.h
8+
cname: struct Omitted
9+
hstypes: []
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module Example () where
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module Example.FunPtr () where
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module Example.Global () where
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module Example.Safe () where
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module Example.Unsafe () where
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
version:
2+
hs_bindgen: 0.1.0
3+
binding_specification: '1.0'
4+
hsmodule: Example
5+
ctypes:
6+
- omit:
7+
headers: program-analysis/selection_omit.h
8+
cname: struct Omitted
9+
hstypes: []
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
-- addDependentFile examples/golden/program-analysis/selection_omit.h

hs-bindgen/src-internal/HsBindgen/Frontend/Pass/ResolveBindingSpecs.hs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -460,10 +460,6 @@ instance Resolve C.Type where
460460
Reader.ask >>= \MEnv{..} -> State.get >>= \MState{..} -> do
461461
let cQualName = C.QualName qualDeclIdName qualDeclIdKind
462462
cQualPrelimDeclId = C.qualDeclIdToQualPrelimDeclId cQualDeclId
463-
-- Check for type omitted by binding specification
464-
when (Map.member cQualPrelimDeclId stateOmitTypes) $
465-
State.modify' $
466-
insertTrace (ResolveBindingSpecsOmittedTypeUse cQualName)
467463
-- Check for selected external binding
468464
case Map.lookup cQualPrelimDeclId stateExtTypes of
469465
Just ty -> do
@@ -530,8 +526,6 @@ resolveExtBinding cQualName cQualPrelimDeclId declPaths = do
530526
insertTrace (ResolveBindingSpecsExtHsRefNoIdentifier cQualName)
531527
return Nothing
532528
Just (_hsModuleName, BindingSpec.Omit, _mHsTypeSpec) -> do
533-
State.modify' $
534-
insertTrace (ResolveBindingSpecsOmittedTypeUse cQualName)
535529
return Nothing
536530
Nothing ->
537531
return Nothing

0 commit comments

Comments
 (0)